配列を繰り返し処理を行い1つの値にする
配列を繰り返し処理を行い1つの値にするには、array.reduce
メソッドを使用します。
- ※ IE8以下に対応していません。
構文
var result = array.reduce(callback, initialValue);
引数
引数名 | 型 | 説明 | |
---|---|---|---|
第一引数 必須 |
callback | Function | 計算処理を行う関数 returnで何かしらの値を返す必要がある 引数はcallbackの引数を参照 |
第二引数 | initialValue | Any | callbackの第一引数accumulatorの最初の値 |
callbackの引数
callback(accumulator, value, index, array) { ... }
引数名 | 型 | 説明 | |
---|---|---|---|
第一引数 | accumulator | Any | コールバックの直前の戻り値の累積 最初の繰り返しはinitialValueの指定がある場合はその値を、ない場合は配列の最初の値となる |
第二引数 | value | Any | 現在の値 |
第三引数 | index | number | 現在のインデックス番号 |
第四引数 | array | Array | 処理している配列 |
戻り値
最終的な累積を返します。
サンプルコード
JavaScript
var foo = [1, 2, 3, 4, 5];
var result1 = foo.reduce(function(accumulator, value) {
return accumulator * value;
});
var result2 = foo.reduce(function(accumulator, value) {
return accumulator * value;
}, 6);
console.log(result1); // 120 = 1 * 2 * 3 * 4 * 5
console.log(result2); // 720 = 6 * 1 * 2 * 3 * 4 * 5