خارطة بالكائنات
الأهمية: 5
لديك مصفوفة مكونة من user
و كل كائن من هذا يحتوى على name
و surname
و id
اكتب الكود اللازم لانتاج مصفوفة آخرى تحتوى على كائنات بها id
و fullName
و يكون الـ fullName
ناتج من دمج name
مع surname
.
مثال :
let john = { name: "John", surname: "Smith", id: 1 };
let pete = { name: "Pete", surname: "Hunt", id: 2 };
let mary = { name: "Mary", surname: "Key", id: 3 };
let users = [ john, pete, mary ];
let usersMapped = /* ... your code ... */
/*
usersMapped = [
{ fullName: "John Smith", id: 1 },
{ fullName: "Pete Hunt", id: 2 },
{ fullName: "Mary Key", id: 3 }
]
*/
alert( usersMapped[0].id ) // 1
alert( usersMapped[0].fullName ) // John Smith
لذلك ، فانك بالتأكيد بحاجة لاستخدام الخرائط map فحاول استخدام =>
للتسهيل فى الاستخدام
let john = { name: "John", surname: "Smith", id: 1 };
let pete = { name: "Pete", surname: "Hunt", id: 2 };
let mary = { name: "Mary", surname: "Key", id: 3 };
let users = [ john, pete, mary ];
let usersMapped = users.map(user => ({
fullName: `${user.name} ${user.surname}`,
id: user.id
}));
/*
usersMapped = [
{ fullName: "John Smith", id: 1 },
{ fullName: "Pete Hunt", id: 2 },
{ fullName: "Mary Key", id: 3 }
]
*/
alert( usersMapped[0].id ); // 1
alert( usersMapped[0].fullName ); // John Smith
Please note that in the arrow functions we need to use additional brackets.
We can’t write like this:
let usersMapped = users.map(user => {
fullName: `${user.name} ${user.surname}`,
id: user.id
});
As we remember, there are two arrow functions: without body value => expr
and with body value => {...}
.
Here JavaScript would treat {
as the start of function body, not the start of the object. The workaround is to wrap them in the “normal” brackets:
let usersMapped = users.map(user => ({
fullName: `${user.name} ${user.surname}`,
id: user.id
}));
Now fine.