【JSリファレンス】Array.prototype.reduceRight()
更新日:2024/06/14
Array.prototype.reduceRight()は、Arrayオブジェクト(Arrayコンストラクターのインスタンス)のプロトタイプチェーンに組み込まれるメソッドです。
配列内の全要素を使用して何らかの結果を得ることを目的としたツールメソッドです。
Array.prototype.reduce()が要素の先頭から処理されるのに対し、Array.prototype.reduceRight()は後方から処理されます。
欠番インデックスは、コールバック関数呼び出しされません。
■構文
Array.prototype.reduceRight ( callbackfn [ , initialValue ] )
- callbackfn: 各要素毎に呼び出される関数
元となる配列の欠番を除いた要素数が1で initialValue が省略された場合、呼び出されない
- initialValue: 省略可能。
callbackfnの初回呼び出しで第一引数に渡される値
元となる配列の欠番を除いた要素数が1で initialValue が省略された場合、その要素の値。
※配列の要素数が0の場合、TypeError例外が発生します。
■callbackfnの構文
callbackfn ( previousValue , currentValue , currentIndex , array ){ }
- previousValue:
初回はinitialValue。
initialValue が省略されている場合は、元となる配列の欠番を除いた最後の要素。2回目以降は、前回の callbackfn 呼び出しの戻り値。
- currentValue: 要素の値
initialValue 省略時の初回呼び出しは、元となる配列の欠番を除いた後ろから2番目の要素。
- currentIndex: currentValue のインデックス
- array: 対象となっている配列
■使用例
▶reduceとreduceRightの結果が異なる例
const array = [-1,2,-3,4,-5,6];
console.log( array.reduce( (a,b)=>a*2+b , 0 ) ); // -12
console.log( array.reduceRight( (a,b)=>a*2+b , 0 ) ); // 135
■備考
call()等でアレイライクオブジェクトを対象にすることも可能です。
const arrayLike = {0:1,1:2,2:3,length:3};
const sum = Array.prototype.reduceRight.call(
arrayLike,
(pre,value) =>pre+value ,
0
);
console.log( sum ); // 6
関連ページ
更新日:2024/06/14
スポンサーリンク
記事の内容について

こんにちはけーちゃんです。
説明するのって難しいですね。
「なんか言ってることおかしくない?」
たぶん、こんなご意見あると思います。
裏付けを取りながら記事を作成していますが、僕の勘違いだったり、そもそも情報源の内容が間違えていたりで、正確でないことが多いと思います。
そんなときは、ご意見もらえたら嬉しいです。
掲載コードについては事前に動作確認をしていますが、貼り付け後に体裁を整えるなどをした結果動作しないものになっていることがあります。
生暖かい視線でスルーするか、ご指摘ください。
ご意見、ご指摘はこちら。
https://jsref.affi-sapo-sv.com/info.php
このサイトは、リンクフリーです。大歓迎です。