02.08.2019, 09:09
|
Интересующийся
|
|
Регистрация: 30.07.2019
Сообщений: 19
|
|
Деструктурирующее присваивание
Только начинаю осваивать JS, помогите разобраться(
Организовать функцию getInfo, которая принимает объект вида
{ name: ..., info: { employees: [...], partners: [ … ] } }
и выводит в консоль имя (если имени нет, показывать ‘Unknown’) и первые две компании из массива partners:
[script]
const organisation = {
name: 'Google',
info: { employees: [‘Vlad’, ‘Olga’], partners: ['Microsoft', 'Facebook', 'Xing'] }
};
getInfo(organisation); →
Name: Google
Partners: Microsoft Facebook
[/script]
|
|
02.08.2019, 10:11
|
Профессор
|
|
Регистрация: 14.01.2015
Сообщений: 12,990
|
|
function getInfo(o) {
console.log('Name: %s\nPartners: %s', o.name||'Unknown', o.info.partners.slice(0, 2).join(' '))
}
[ ‘Vlad ’, ‘Olga ’ - нельзя!
|
|
02.08.2019, 10:19
|
|
Профессор
|
|
Регистрация: 08.11.2017
Сообщений: 642
|
|
<script>
const organisationGoogle = {
name: 'Google',
info: {
employees: ['Vlad', 'Olga'],
partners: ['Microsoft', 'Facebook', 'Xing']
}
};
const organisationCompany = {
info: {
employees: ['Olga', 'Vlad'],
partners: ['Xing']
}
};
const getInfo = organisation => {
const { name, info: { partners } } = organisation
return { name: name || `UNKNOWN`, partners: partners.slice(0, 2) }
}
const getOrganisationInfo = ({ name, info: { partners } }) => ({ name: name || `UNKNOWN`, partners: partners.slice(0, 2) })
console.log(getOrganisationInfo(organisationGoogle))
console.log(getOrganisationInfo(organisationCompany))
</script>
|
|
02.08.2019, 11:01
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,108
|
|
const organisationGoogle = {
name: 'Google',
info: {
employees: ['Vlad', 'Olga'],
partners: ['Microsoft', 'Facebook', 'Xing']
}
};
const organisationCompany = {
info: {
employees: ['Olga', 'Vlad'],
partners: ['Xing']
}
};
const getInfo = ({ name = 'UNKNOWN', info: { partners : [a,b]} }) => ({name, partners : [a,b]})
console.log(getInfo(organisationGoogle))
console.log(getInfo(organisationCompany))
|
|
02.08.2019, 11:04
|
Интересующийся
|
|
Регистрация: 30.07.2019
Сообщений: 19
|
|
Спасибо)
|
|
02.08.2019, 11:35
|
Интересующийся
|
|
Регистрация: 30.07.2019
Сообщений: 19
|
|
Похожая задачка, но непонятно как сделать для этого всего функцию, был бы просто массив или объект другое дело(
Используя rest оператор и деструктуризацию, создать функцию, которая принимает любое количество аргументов и возвращает объект, содержащий первый аргумент и массив из остатка:
func('a', 'b', 'c', 'd') →
{
first: 'a',
other: ['b', 'c', 'd']
}
|
|
02.08.2019, 11:40
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,108
|
|
Трудяга,
const func = (first, ...other) => ({first, other});
console.log(func('a', 'b', 'c', 'd'))
|
|
02.08.2019, 11:52
|
Интересующийся
|
|
Регистрация: 30.07.2019
Сообщений: 19
|
|
спасибо
Последний раз редактировалось Трудяга, 02.08.2019 в 12:15.
|
|
|
|