返回课程

从数组创建带键的对象

重要性: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;
  }, {})
}

在沙箱中打开带有测试的解决方案。