【JavaScript ECMAScript】Array::Array.prototype.reduceインスタンスメソッドの使い方
Array.prototype.reduce()インスタンスメソッドの使い方について、初心者にもわかりやすく解説します。
基本的な使い方
Array.prototype.reduce()メソッドは、配列の各要素を左から右へ順に処理し、それらを一つの値に集約(還元)して新しい単一の結果を生成するために使用されるメソッドです。このメソッドは、引数としてコールバック関数を受け取ります。このコールバック関数は、配列のすべての要素に対して一度ずつ実行されます。
コールバック関数は、主に二つの引数を受け取ります。一つ目は「累積値(accumulator)」で、これは前の要素までの処理結果を保持する値です。二つ目は「現在の要素(currentValue)」で、これは現在処理している配列の要素です。コールバック関数が返す値は、次の要素の処理における新しい累積値として引き継がれます。
reduce()メソッドは、オプションで第二引数として「初期値(initialValue)」を受け取ることができます。この初期値を指定すると、それが最初の累積値として使用され、配列の最初の要素からコールバック関数の実行が開始されます。もし初期値を省略した場合、配列の最初の要素が初期値として自動的に設定され、コールバック関数は配列の二番目の要素から実行されます。空の配列に対して初期値を省略してreduce()を呼び出すとエラーが発生するため、注意が必要です。
このメソッドは、配列内の数値の合計や平均の算出、配列から新しいオブジェクトへの変換、または特定の条件に基づいて複雑なデータ構造を構築するなど、様々な集約処理に非常に強力なツールとして活用されます。コードを簡潔にし、可読性を高める効果も期待できます。
構文(syntax)
1targetArray.reduce((accumulator, currentValue, currentIndex, array) => { 2 return accumulator; 3}, initialValue);
引数(parameters)
callbackFn, initialValue
- callbackFn: (accumulator, currentValue, currentIndex, array) => any: 配列の各要素に対して実行されるコールバック関数。
- initialValue: any = undefined: コールバック関数の初回呼び出しにおけるaccumulatorの初期値。
戻り値(return)
任意の型
Array.prototype.reduce() は、配列の各要素に対して、指定された reducer 関数を実行し、その結果を単一の値に集約した値を返します。