gpt4 book ai didi

javascript - 将对象数组中的所有数据求和到新的对象数组中

转载 作者:行者123 更新时间:2023-12-03 00:44:47 25 4
gpt4 key购买 nike

我有一个如下所示的对象数组:

var data = [
{ costOfAirtickets: 2500, costOfHotel: 1200 },
{ costOfAirtickets: 1500, costOfHotel: 1000 },
]

我想对数组中的每个元素求和以生成如下数组:

var result = [ { costOfAirtickets: 4000, costOfHotel: 2200 } ]

我使用了映射和归约函数,但我只能对单个元素求和,如下所示:

data.map(item => item.costOfAirtickets).reduce((prev, next) => prev + next); // 22

目前,这会产生一个单一值,这不是我最初解释想要的值。

有没有办法用 Javascript 或可能使用 lodash 来做到这一点。

最佳答案

使用for..in迭代对象,使用reduce迭代数组

var data = [{costOfAirtickets: 2500, costOfHotel: 1200},{costOfAirtickets: 1500, costOfHotel: 1000}];

var result = [data.reduce((acc, n) => {
for (var prop in n) {
if (acc.hasOwnProperty(prop)) acc[prop] += n[prop];
else acc[prop] = n[prop];
}
return acc;
}, {})]
console.log(result)

关于javascript - 将对象数组中的所有数据求和到新的对象数组中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52479107/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com