如何对两个对象的属性求和? [英] How can I sum properties from two objects?

查看:54
本文介绍了如何对两个对象的属性求和?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有多个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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆