我有多个 JavaScript 对象:
{
a: 12,
b: 8,
c: 17
}
and
{
a: 2,
b: 4,
c: 1
}
我需要通过键对这两个对象求和
Result:
{
a: 14,
b: 12,
c: 18
}
你有 JavaScript 的解决方案吗?
我用Object.keys.map
但它太长了,因为我的对象中有大约 100 个元素。
你可以使用reduce来实现,下面的函数可以接受任意数量的对象并按键对它们求和:
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));
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)