Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> JavaScript

Cộng dồn giá trị các key trùng nhau trong mảng object - JavaScript


Giả sử chúng ta có mảng object như sau:

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

Mỗi object có key duy nhất trong chính nó, nhưng các object khác nhau có thể chia sẻ key.

Chúng ta cần viết hàm nhận vào mảng này và trả về object chứa tất cả key duy nhất và tổng giá trị tích lũy của chúng.

Kết quả:

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

Ví dụ

Dưới đây là đoạn code:

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));

Kết quả

Đoạn code sẽ in ra console:

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