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日