具有相同属性的两个对象的 JavaScript 和


假设我们有如下两个对象 -

const obj1 = {
   a:12, b:8, c:17
};
const obj2 = {
   a:2, b:4, c:1
};

我们需要编写一个 JavaScript 函数,该函数接受两个这样的对象。

此函数应将相同属性的值相加到单个属性中。因此,最终的对象应如下所示 -

const output = {
   a:14, b:12, c:18
};

注意 - 为了简单起见,我们只使用了两个对象,但我们要求编写我们的函数,以便它可以接受任意数量的对象并添加它们的属性值。

示例

const obj1 = {
   a:12,
   b:8,
   c:17
};
const obj2 = {
   a:2,
   b:4,
   c:1
};
const sumObjectsByKey = (...objs) => {
   const res = objs.reduce((a, b) => {
      for (let k in b) {
         if (b.hasOwnProperty(k))
         a[k] = (a[k] || 0) + b[k];
      }
      return a;
   }, {});
   return res;
}
console.log(sumObjectsByKey(obj1, obj2));

输出

控制台中的输出将是 -

{ a: 14, b: 12, c: 18 }

更新于: 2020-11-21

2K+ 浏览

启动您的职业生涯

完成课程即可获得认证

开始
广告
© . All rights reserved.