从数组创建对象,使用函数将每个值映射到键。
使用Array.prototype.reduce()对数组 arr应用于fn 函数,使数组 arr 每个值以生成一个键并将键值对添加到对象。
const indexBy = (arr, fn) =>
arr.reduce((obj, v, i) => {
obj[fn(v, i, arr)] = v;
return obj;
}, {});
示例
indexBy([
{ id: 10, name: 'apple' },
{ id: 20, name: 'orange' }
], x => x.id);
// { '10': { id: 10, name: 'apple' }, '20': { id: 20, name: 'orange' } }
更多内容请访问我的网站:https://www.icoderoad.com