javascript - 如何沿索引添加多个数组中的对象
问题描述
我有一个对象数组
[
[{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函数可以管理这个?
解决方案
您可以使用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);
推荐阅读
- html - 将相对 div 拉伸到其静态父级的高度
- angular - Angular TypeError:“provider.ngAfterViewInit 不是 callProviderLifecycles 的函数”
- reactjs - 如何在开玩笑的单元测试中设置道具
- pandas - 将熊猫值替换为另一个数组的索引
- javascript - How can I add Vanilla JS to my react app to create Image Modal pop-ups?
- excel - 如果之前在其上激活图表,ExportAsFixedFormat 不会导出我的整个工作表
- java - 如何在给定文件和记录中长度大于三个的单词数
- c - 以 CSV 存储的大数据数组中的分段错误读取
- dart - Flutter ScrollView Animation:当孩子改变大小时如何防止滚动动画?
- php - 如何在另一个会话中使用 $_SESSION['variable']?