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 phải có 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 bắt buộc phải 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à giá trị của chúng là tổng tích lũy dưới dạng giá trị.
Vì vậy, đối tượng kết quả sẽ giống như -
const output = {a: 6, b: 9, c: 6, d: 3};
Do đó, hãy viết mã cho chức năng này -
Ví dụ
Mã cho điều này sẽ là -
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
Đầu ra trong bảng điều khiển sẽ là -
{ a: 6, b: 9, c: 6, d: 3 }