Memetakan objek
Kamu mempunyai array dari objek user
, masing-masing memiliki name
, surname
dan id
.
Tulis kode untuk membuat array lainnya dari itu, sebuah objek dengan id
dan fullName
, dimanafullName
dibuat dari name
dan surname
.
Contoh:
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 = /* ... kodemu ... */ /* 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
Jadi, sebenarnya kamu harus memetakan satu array dari objek menjadi array dari objek lainnya. Cobalah gunakan =>
disini. Ada sedikit yang harus ditangkap.
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
Perhatikan bahwa didalam fungsi arrow kita butuh untuk menggunakan tambahan kurung.
Kita tidak bisa menulis seperti ini:
let usersMapped = users.map(user => { fullName: `${user.name} ${user.surname}`, id: user.id });
Seperti yang kita ingat, terdapat dua fungsi arrow: tanpa body value => expression
dan dengan body value => {...}
.
Disini Javascript akan memperlakukan {
seperti awal dari fungsi body, bukan awal dari objek. Solusinya adalah untuk membungkus mereka didalam kurung “biasa”:
let usersMapped = users.map(user => ({ fullName: `${user.name} ${user.surname}`, id: user.id }));
Sekarang beres.