从数组创建键(值)对象
重要程度: 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; }, {}) }