javascript - 如何求和两个对象的属性?

标签 javascript sum

我有多个 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来实现,下面的函数可以接受任意数量的对象并按键对它们求和:

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 - 如何求和两个对象的属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42488048/

相关文章:

Python:数字之和

javascript - 将元素附加到页面后,转到另一个页面,然后返回,附加的元素消失了

javascript - Select2 默认搜索框不起作用

java - 求和 BigInteger 数字

mysql - 查询对两个表求和

algorithm - 子集和 - 恢复解决方案

c# - asp.net 它自动运行我的 C# 方法

javascript - javascript函数中的代码用逗号而不是分号分隔

javascript - 无法最大化或切换聊天框,自动滚动不起作用

sql-server - SQL 具有 SUM GROUP BY