Трансформувати в обʼєкти
У вас є масив обʼєктів user
, і у кожного з обʼєктів є name
, surname
та id
.
Напишіть код, який створить ще один масив обʼєктів з параметрами id
й fullName
, де fullName
– складається з name
та surname
.
Наприклад:
let ivan = { name: "Іван", surname: "Іванко", id: 1 };
let petro = { name: "Петро", surname: "Петренко", id: 2 };
let mariya = { name: "Марія", surname: "Мрійко", id: 3 };
let users = [ ivan, petro, mariya ];
let usersMapped = /* ... ваш код ... */
/*
usersMapped = [
{ fullName: "Іван Іванко", id: 1 },
{ fullName: "Петро Петренко", id: 2 },
{ fullName: "Марія Мрійко", id: 3 }
]
*/
alert( usersMapped[0].id ) // 1
alert( usersMapped[0].fullName ) // Іван Іванко
Отже, насправді вам потрібно трансформувати один масив обʼєктів в інший. Спробуйте використовувати =>
. Це невелика хитрість.
let ivan = { name: "Іван", surname: "Іванко", id: 1 };
let petro = { name: "Петро", surname: "Петренко", id: 2 };
let mariya = { name: "Марія", surname: "Мрійко", id: 3 };
let users = [ ivan, petro, mariya ];
let usersMapped = users.map(user => ({
fullName: `${user.name} ${user.surname}`,
id: user.id
}));
/*
usersMapped = [
{ fullName: "Іван Іванко", id: 1 },
{ fullName: "Петро Петренко", id: 2 },
{ fullName: "Марія Мрійко", id: 3 }
]
*/
alert( usersMapped[0].id ); // 1
alert( usersMapped[0].fullName ); // Іван Іванко
Зверніть увагу, що для стрілкових функцій ми повинні використовувати додаткові дужки.
Ми не можемо написати ось так:
let usersMapped = users.map(user => {
fullName: `${user.name} ${user.surname}`,
id: user.id
});
Як ми памʼятаємо, є дві функції зі стрілками: без тіла value => expr
та з тілом value => {...}
.
Тут JavaScript трактуватиме {
як початок тіла функції, а не початок обʼєкта. Щоб обійти це, потрібно укласти їх в круглі дужки:
let usersMapped = users.map(user => ({
fullName: `${user.name} ${user.surname}`,
id: user.id
}));
Тепер усе добре.