【Node.js24.x】Array::reduceRight()メソッドの使い方
reduceRightメソッドの使い方について、初心者にもわかりやすく解説します。
基本的な使い方
reduceRightメソッドは、配列の各要素を右端から左端に向かって順に処理し、その結果を単一の値に集約するメソッドです。
このメソッドは、引数としてコールバック関数(callbackFn)とオプションの初期値(initialValue)を受け取ります。callbackFnは、集約された値(accumulator)、現在処理中の要素の値(currentValue)、現在の要素のインデックス(currentIndex)、そしてreduceRightが呼び出された元の配列(array)を引数として受け取ります。callbackFnが返す値は、次回のcallbackFnのaccumulatorとして渡されます。
initialValueが指定された場合、accumulatorはinitialValueで初期化され、配列の最後の要素からcallbackFnが実行されます。initialValueが省略された場合、accumulatorは配列の最後の要素で初期化され、callbackFnは配列の最後から2番目の要素から実行されます。空の配列に対してinitialValueなしでreduceRightを呼び出すとTypeErrorが発生しますので注意が必要です。
reduceRightは、右から左へ累積的な計算や処理を行う場合に利用されます。例えば、配列の要素を逆順に結合したり、右端から特定の条件で値を集約する際に便利です。これは、左から右へ処理を行うreduceメソッドとは処理の方向が逆になります。全ての要素の処理が完了すると、最終的に集約された単一の値を返します。
構文(syntax)
1const array = [1, 2, 3]; 2 3// 配列の要素を右から左へ結合する例 4// accumulator: 累積値 5// currentValue: 現在処理中の配列要素 6// initialValue (オプション): 最初のaccumulatorの値。指定しない場合、配列の最後の要素が最初のaccumulatorとなる。 7const result = array.reduceRight((accumulator, currentValue) => { 8 return accumulator + String(currentValue); 9}, "Start: "); 10 11console.log(result); // 出力: "Start: 321"
引数(parameters)
callbackFn, initialValue
- callbackFn: function: 配列の各要素に対して実行されるコールバック関数。この関数は、accumulator (累積値) と currentValue (現在の要素) を引数として受け取ります。
- initialValue: any: オプション。コールバック関数の初回呼び出し時に accumulator として使用される初期値。指定されない場合、配列の最後の要素が初期値として使用されます。
戻り値(return)
any
Array.prototype.reduceRight メソッドは、配列の要素を右端から順に処理し、指定されたコールバック関数によって返される単一の値(アキュムレータ)を返します。