具有相同屬性的兩個物件的 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+ 瀏覽

啟動您的職業生涯

完成課程即可獲得認證

開始
廣告