Computer >> Máy Tính >  >> Lập trình >> Javascript

Thêm giá trị của các khóa phù hợp trong mảng đối tượng - JavaScript

Giả sử chúng ta có một mảng các đối tượng như thế này -

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

Mỗi đối tượng bị ràng buộc có các khóa duy nhất trong chính nó (đối với nó là một đối tượng hợp lệ), nhưng hai đối tượng khác nhau có thể có các khóa chung (cho mục đích của câu hỏi này)

Chúng tôi được yêu cầu viết một hàm JavaScript nhận trong một mảng như vậy và trả về một đối tượng có tất cả các khóa duy nhất có trong mảng và tổng tích lũy các giá trị của chúng dưới dạng giá trị

Do đó, đối tượng kết quả sẽ giống như -

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

Ví dụ

Sau đây là mã -

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

Đầu ra

Điều này sẽ tạo ra kết quả sau trong bảng điều khiển -

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