配列を繰り返し処理を行い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

JavaScript逆引きリファレンス一覧へ戻る