从数组创建带键的对象
重要性: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;
}, {})
}