把物件陣列中匹配鍵的值加起來 - JavaScript


假設我們有一個類似這樣的物件陣列 −

const arr = [{a: 2, b: 5, c: 6}, {a:3, b: 4, d:1},{a: 1, d: 2}];

每個物件都繫結有其自身唯一的鍵(使其成為一個有效物件),但是兩個不同的物件可以有公用鍵(出於本問題目的)

我們需要編寫一個 JavaScript 函式,該函式輸入一個這樣的陣列,並返回一個物件,其中包含陣列中存在的所有唯一鍵,以及它們的累積和作為值

因此,結果物件應類似於 −

const output = {a: 6, b: 9, c: 6, d: 3};

範例

以下是程式碼 −

const arr = [{a: 2, b: 5, c: 6}, {a: 3, b: 4, d:1}, {a: 1, d: 2}];
const sumArray = arr => {
   const res = {};
   for(let i = 0; i < arr.length; i++){
      Object.keys(arr[i]).forEach(key => {
         res[key] = (res[key] || 0) + arr[i][key];
      });
   };
   return res;
};
console.log(sumArray(arr));

輸出

這將在控制檯中產生以下輸出 −

{ a: 6, b: 9, c: 6, d: 3 }

更新於: 18-Sep-2020

583 次瀏覽

開啟你的職業生涯

完成課程後即可獲得認證

立即開始
廣告
© . All rights reserved.