如何对两个对象的属性求和? [英] How can I sum properties from two objects?
本文介绍了如何对两个对象的属性求和?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有多个JavaScript对象:
I have multiple JavaScript objects:
{ a:12,
b:8,
c:17
}
和
{ a:2,
b:4,
c:1
}
我需要通过键求和这两个对象
I need to sum this two object by keys
结果:
{ a:14,
b:12,
c:18
}
您在javascript中有任何解决方案吗? 我使用Object.keys.map,但是它太长了,因为我的对象中有100个元素
Do you have any solutions in javascript ? I use Object.keys.map but it's too longer because i have like 100 elements in my object
感谢您的帮助
推荐答案
您可以使用reduce来实现,下面的函数根据需要使用任意数量的对象,并按键对其求和:
You can use reduce for that, below function takes as many objects as you want and sums them by key:
var obj1 = {
a: 12,
b: 8,
c: 17
};
var obj2 = {
a: 12,
b: 8,
c: 17
};
var obj3 = {
a: 12,
b: 8,
c: 17
};
function sumObjectsByKey(...objs) {
return objs.reduce((a, b) => {
for (let k in b) {
if (b.hasOwnProperty(k))
a[k] = (a[k] || 0) + b[k];
}
return a;
}, {});
}
console.log(sumObjectsByKey(obj1, obj2, obj3));
这篇关于如何对两个对象的属性求和?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文