# [Javascript] 使用 Array.Reduce 進行 Object Array 的加總
最近在工作上碰到的小需求,因此紀錄一下。
我們都知道 Array.reduce
可以將 array 中的 element 遍歷,並且依照 callback 進行處理。
最常用的功能就是將 array 中的所有 element 加總。
例如下面的 code
arr = [1,2,3,4,5,6,7,8,9,10]
arr.reduce((a,b) => a + b )
然而今天我的需求是一個 Object Array
該怎麼做呢?
例如下面的例子:
var ary = [
{ a: 1, b: 11 },
{ a: 2, b: 12 },
{ a: 3, b: 13 },
{ a: 4, b: 14 },
{ a: 5, b: 15 },
];
依照 Stack Overflow 的解釋,我們可以先在 initial 時建立一個 initial object
,再使用 reduce
遍歷整個 object array
。
ary.reduce((total, currentObj) => {
return {
a: total.a + currentObj.a ,
b: total.b + currentObj.b ,
}
}, {a: 0, b: 0} );
如此就可以達到使用 reduce
加總 Array Object
的功效了。