# [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 的功效了。

Like z20240z's work