從陣列建立鍵值物件
重要性:4
假設我們收到一個陣列 {id:..., name:..., age:... }
的使用者。
建立一個函式 groupById(arr)
,從陣列建立一個物件,其中 id
為鍵,陣列項目為值。
例如
let users = [
{id: 'john', name: "John Smith", age: 20},
{id: 'ann', name: "Ann Smith", age: 24},
{id: 'pete', name: "Pete Peterson", age: 31},
];
let usersById = groupById(users);
/*
// after the call we should have:
usersById = {
john: {id: 'john', name: "John Smith", age: 20},
ann: {id: 'ann', name: "Ann Smith", age: 24},
pete: {id: 'pete', name: "Pete Peterson", age: 31},
}
*/
當使用伺服器資料時,此類函式非常方便。
在此任務中,我們假設 id
是唯一的。沒有兩個陣列項目具有相同的 id
。
請在解答中使用陣列 .reduce
方法。
function groupById(array) {
return array.reduce((obj, value) => {
obj[value.id] = value;
return obj;
}, {})
}