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,下面的函数可以根据需要使用尽可能多的对象,并按键对它们求和:

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));
https://stackoverflow.com/questions/42488048/javascript-sum-of-two-object-with-same-properties

本站文章除注明转载外,均为本站原创或编译
转载请明显位置注明出处:Javascript – 具有相同属性的两个对象的总和