回到课程

从数组创建键(值)对象

重要程度: 4

假设我们收到了一个用户数组,形式为:{id:..., name:..., age:... }

创建一个函数 groupById(arr) 从该数组创建对象,以 id 为键(key),数组项为值。

例如:

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); /* // 调用函数后,我们应该得到: 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; }, {}) }

使用沙箱的测试功能打开解决方案。