根据键将数组转换为对象

根据指定的键从数组中创建一个对象,并将该键从每个值中排除。

  • 使用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' } }