根据键将数组转换为对象
根据指定的键从数组中创建一个对象,并将该键从每个值中排除。
- 使用
Array.prototype.reduce()
从arr
创建一个对象。 - 使用对象解构来获取给定
key
的值和关联的data
,并将键值对添加到对象中。
const indexOn = (arr, key) =>
arr.reduce((obj, v) => {
const { [key]: id, ...data } = v;
obj[id] = data;
return obj;
}, {});
indexOn([
{ id: 10, name: 'apple' },
{ id: 20, name: 'orange' }
], 'id');
// { '10': { name: 'apple' }, '20': { name: 'orange' } }