reduceRight()

このエントリーをはてなブックマークに追加

Array.reduceRight()は各配列に対してコールバック関数で直前のコールバック関数の結果を含めて計算することができるメソッドです。

配列は後ろから順にコールバック関数を実行していきます。

次のコードでは配列の中身をすべて加算した数10を返します。

var arr = [1,2,3,4];
  
arr.reduce(function(prev,elem){
	console.log(prev,elem);
	return prev+elem;
});

このコードではコールバック関数は配列の数つまり4回から1回引いた3回実行されます。

最初のコールバック関数ではprevはarr[3]の4にelemはarr[2]の3です。
2回目のコールバック関数ではprevは直前のコールバック関数の戻り値である7にelemはarr[1]の2です。
3回目のコールバック関数ではprevは直前のコールバック関数の戻り値である9にelemはarr[0]の1です。
結果このコードは最後のコールバック関数の戻り値の10を返します。

このメソッドは第2引数に初期値を設定できます。

var arr = [1,2,3,4];
  
arr.reduce(function(prev,elem){
	return prev+elem;
},0);

初期値が設定された場合、コールバック関数は配列の数つまり4回実行されます。

最初のコールバック関数では初期値の0にelemはarr[3]の4です。
2回目のコールバック関数ではprevは直前のコールバック関数の戻り値である4にelemはarr[2]の3です。
3回目のコールバック関数ではprevは直前のコールバック関数の戻り値である7にelemはarr[1]の2です。
4回目のコールバック関数ではprevは直前のコールバック関数の戻り値である9にelemはarr[0]の1です。
結果このコードは最後のコールバック関数の戻り値の10を返します。

このメソッドはArray.reduce()と逆の動きをします。

このメソッドはECMAScript 5で定義されており、IE8以下など古いブラウザでは動作しません。

登録日 : 2012年10月30日 最終更新日 : 2012年10月30日

同じカテゴリー(Array)のエントリー

検索

スポンサードリンク

バージョン

リファレンス