js数组对象合并相同属性值reduce

JavaScript中可以使用Array.prototype.reduce()方法对数组中的对象合并相同属性值。

该方法接受两个参数:一个回调函数和一个初始值,回调函数接受两个参数:累加器和数组中的当前值。在每次迭代中,累加器的值是回调函数的返回值。

以下是代码示例:

var arr = [
  { name: 'John', age: 21 },
  { name: 'Jane', age: 21 },
  { name: 'Jim', age: 22 }
var result = arr.reduce(function(acc, cur) {
  if (!acc[cur.age]) {
    acc[cur.age] = [];
  acc[cur.age].push(cur.name);
  return acc;
}, {});
console.log(result);
// Output: { 21: [ 'John', 'Jane' ], 22: [ 'Jim' ] }

在上面的代码中,我们使用reduce()方法对数组中的对象进行合并,并将相同年龄的人的名字存储在一个数组中。最后,我们获得了一个对象,该对象的键是年龄,值是名字数组。

  • Spdino
    4年前
  •