具有相同屬性的兩個物件的 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 }
廣告