Стрелочная функция в массиве

Этот код работает правильно.

let vasya = { name: "Вася", surname: "Пупкин", id: 1 };
let petya = { name: "Петя", surname: "Иванов", id: 2 };
let masha = { name: "Маша", surname: "Петрова", id: 3 };

let users = [ vasya, petya, masha ];

let usersMapped = users.map(user => ({
  fullName: `${user.name} ${user.surname}`,
  id: user.id
}));

alert( usersMapped[0].id );
alert( usersMapped[0].fullName ); 

Но здесь я решил раскрыть стрелочную функцию,

дабы лучше понять код.

Но где-то я допустил ошибку, подскажите, где она?

let vasya = { name: "Вася", surname: "Пупкин", id: 1 };
let petya = { name: "Петя", surname: "Иванов", id: 2 };
let masha = { name: "Маша", surname: "Петрова", id: 3 };

let users = [ vasya, petya, masha ];

let usersMapped = users.map(function(user){   // Раскрытие стрелочной функции
return fullName: `${user.name} ${user.surname}`,id: user.id;
});


alert( usersMapped[0].id ) 
alert( usersMapped[0].fullName ) 


Ответы (1 шт):

Автор решения: Алексей Шиманский

Вы забыли вернуть объект.

let vasya = { name: "Вася", surname: "Пупкин", id: 1 };
let petya = { name: "Петя", surname: "Иванов", id: 2 };
let masha = { name: "Маша", surname: "Петрова", id: 3 };

let users = [ vasya, petya, masha ];

let usersMapped = users.map(function(user) { 
    return {
        fullName: `${user.name} ${user.surname}`, 
        id: user.id
    };
});


alert( usersMapped[0].id ) 
alert( usersMapped[0].fullName )


Было:

return fullName: `${user.name} ${user.surname}`,id: user.id;

Стало:

return { // <---
    fullName: `${user.name} ${user.surname}`, 
    id: user.id
}; // <---
→ Ссылка