Javascript 如何将数组对象求和成为对象?

Javascript 如何将数组对象求和成为对象?,javascript,Javascript,我对这个案子有个问题 输入: data = [ { number_1: 10, number_2: 20 }, { number_1: 15, number_2: 5 }, { number_1: 15, number_2: 35 }, ]; 输出: dataSum = { sum_number_1: 40, sum_number_2: 60 }; 我想问一下我们可以使用的两种方法:数组。reduce和数组。forEach。我看到我们需要将数组转换成一个对象来输出。谢谢你的帮助。这就是你想要

我对这个案子有个问题

输入:

data = [
{ number_1: 10, number_2: 20 },
{ number_1: 15, number_2: 5 },
{ number_1: 15, number_2: 35 },
];
输出:

dataSum = { sum_number_1: 40, sum_number_2: 60 };
我想问一下我们可以使用的两种方法:数组。reduce数组。forEach。我看到我们需要将数组转换成一个对象来输出。谢谢你的帮助。

这就是你想要的吗

data.reduce((acc,{number_1,number_2})=>{
acc.sum_编号_1+=编号_1;
acc.sum_数_2+=数_2;
返回acc;
},{sum_number_1:0,sum_number_2:0})

数组.reduce的初始模式实际上取决于您

const数据=[{
数字1:10,
编号2:20
},
{
数字1:15,
数字2:5
},
{
数字1:15,
编号2:35
},
];
const res=数据减少((acc{
第1号,
数字2
}) => {
acc.sum_编号_1+=编号_1;
acc.sum_数_2+=数_2;
返回acc;
}, {
总数为1:0,
总数2:0
})
console.log(res)
尝试如下操作:

数据=[
{数字1:10,数字2:20},
{数字1:15,数字2:5},
{编号1:15,编号2:35},
];
常数减速机=(累加器,当前值)=>{
累加器.sum_number_1+=currentValue.number_1;
累加器.sum_number_2+=currentValue.number_2;
回流蓄能器;
};

log(data.reduce(reducer,{sum_number_1:0,sum_number_2:0}))您可以采用动态方法,对对象的所有属性进行求和

const
data=[{number_1:10,number_2:20},{number_1:15,number_2:5},{number_1:15,number_2:35}],
结果=数据。减少((r,o)=>{
Object.entries(o.forEach([k,v])=>r[k]=(r[k]|0)+v)
返回r;
});

控制台日志(结果)欢迎使用堆栈溢出!请拿着(你得到了一枚徽章!)通读一下,尤其是你最好的选择是做你的研究,做相关的主题,然后试一试。如果你在做了更多的研究和搜索后陷入困境,无法摆脱困境,请发布一份你的尝试,并明确指出你陷入困境的地方。人们会很乐意帮助的。“我想问一下我们可以使用的两种方法:array.reduce和array.forEach。”不要使用
reduce
,因为这会使事情过于复杂。(通常,如果您没有使用预定义的、可重用的reducer函数进行函数编程,请不要使用
reduce
)您会看到
reduce
被大量使用,几乎总是在代码更简单、更清晰的地方使用循环。我也不会使用
forEach
,我会使用
for of
循环,但是
forEach
也可以工作。基本上:使用这两个属性和值创建一个结果对象
0
。在数组中循环,将每个对象的属性值添加到结果对象中的值。在我看来,这就像一个赋值/练习:(试着这样做,并展示你所做的。否则,SE是错误的位置。