您可以使用 JavaScript 中的 reduce 函数来实现这个功能。下面是一个示例实现:

function groupBy(arr) {
  return arr.reduce((result, item) => {
    const name = item.name;
    if (!result[name]) {
      result[name] = [];
    }
    result[name].push(item);
    return result;
  }, {});
}

const input = [
  { name: 'limin', age: 20 },
  { name: 'zhangsan', age: 21 },
  { name: 'lisi', age: 22 },
  { name: 'zhangsan', age: 23 },
  { name: 'limin', age: 24 },
  { name: 'lisi', age: 25 },
];

const output = groupBy(input);
console.log(output);

运行以上代码,将会得到期望的输出:

{
  'limin': [
    { name: 'limin', age: 20 },
    { name: 'limin', age: 24 }
  ],
  'lisi': [
    { name: 'lisi', age: 22 },
    { name: 'lisi', age: 25 }
  ],
  'zhangsan': [
    { name: 'zhangsan', age: 21 },
    { name: 'zhangsan', age: 23 }
  ]
}

这个函数首先使用 reduce 函数初始化一个空对象作为结果。然后遍历输入数组,对于每个元素,将其 name 属性作为 key,如果结果对象中不存在该 key,则初始化一个空数组。然后将当前元素添加到对应的数组中。最后返回结果对象。

JavaScript 函数:使用 reduce 将数组分组

原文地址: https://www.cveoy.top/t/topic/cpeY 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录