(標準組み込みオブジェクト > Array > メソッド)
https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Array/reduce
配列.reduce((previousValue, currentValue, currentIndex, array) => {fn, initialValue})
「reduce()」は、配列データの各要素を累積して1つの値にする用途に最適なメソッドである。
- previousValue: 直前要素での関数fnの処理結果(累積値)
- currentValue: その配列での関数fnの処理結果(要素)
- currentIndex: 処理を行なっている要素のインデックス
- array: reduceに与えている配列
- fn: reduceに与えているコールバック関数
- initialValue: 1つ目の要素計算で使われる値(初期値)
以下の例は、それぞれの配列の要素でコールバック関数による計算を行い、その要素の計算結果を次の要素での計算に回し計算し、最終要素での計算結果が返り値になる。
const sum = [0, 1, 2, 3].reduce(function (previousValue, currentValue) {
return previousValue + currentValue
}, 0) // => 6
// アルゴリズム
// 計算1回目: 0(initialValue) + 0(currentValue) = 0
// 計算2回目: 0(previousValue) + 1(currentValue) = 1
// 計算3回目: 1(previousValue) + 2(currentValue) = 3
// 計算4回目: 3(previousValue) + 3(currentValue) = 6 ←reduce関数として返す返り値