Javascript - 具有相同属性的两个对象的总和 [英] Javascript - Sum of two object with same properties
本文介绍了Javascript - 具有相同属性的两个对象的总和的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有多个javascript对象
{a:12,
b:8,
c:17
}
和
{a:2,
b:4,
c:1
}
我需要按键对这两个对象求和
结果:
{a:14,
b:12,
c:18
}
你有任何javascript解决方案吗?
我使用Object.keys.map但它太长了因为我在我的对象中有100个元素
谢谢你的帮助
解决方案
你可以使用reduce,下面的函数可以获取你想要的任意数量的对象,并按键求和:
<预类= 片段码-JS郎-JS prettyprint-越权>
变种OBJ1 = {A:12,b:8,C:17}; VAR OBJ2 = {A:12, b:8,C:17}; VAR OBJ3 = {A:12,b:8,C:17};功能sumObjectsByKey(...的OBJ){返回objs.reduce((A,b)=> {对(令k in b){if(b.hasOwnProperty(k))a [k] =(a [k] || 0)+ b [k];}返回a;},{});} console.log (sumObjectsByKey(obj1,obj2,obj3));
I have multiple javascript object
{ a:12,
b:8,
c:17
}
And
{ a:2,
b:4,
c:1
}
I need to sum this two object by keys
Result :
{ a:14,
b:12,
c:18
}
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
Thanks for you help
解决方案
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));
这篇关于Javascript - 具有相同属性的两个对象的总和的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文