首页 > 解决方案 > 如何沿索引添加多个数组中的对象

问题描述

我有一个对象数组

[
  [{data:1},{data:2},{data:3}],
  [{data:1},{data:2},{data:3}],
  [{data:1},{data:2},{data:3}]
]

我需要[{data:3},{data:6},{data:9}]通过加法减少。添加索引 0 的对象,添加索引 1 的对象,以及添加索引 2 的对象。

有没有像reduce这样的Javascript函数可以管理这个?

标签: javascript

解决方案


您可以使用array.reduce跨多个数组聚合数据array.map并对值求和,因为它采用箭头函数,其中第二个参数表示当前处理元素的索引:

let input = [
  [{data:1},{data:2},{data:3}],
  [{data:1},{data:2},{data:3}],
  [{data:1},{data:2},{data:3}]
];

let result = input.reduce((arr,cur) => 
                           arr.map((val, i) => ({ data: val.data + cur[i].data })));

console.log(result);


推荐阅读