配列を一つの値に集約する。集計・変換に多用される
const nums = [1, 2, 3, 4];
const sum = nums.reduce((acc, n) => acc + n, 0); // 10
// オブジェクトへ変換
const people = [{ name: 'Alice', age: 30 }, { name: 'Bob', age: 25 }];
const byName = people.reduce((acc, p) => {
acc[p.name] = p;
return acc;
}, {} as Record<string, typeof people[0]>);reduce()は配列を一つの値に集約するメソッドです。合計・最大値・オブジェクトへの変換・グルーピングなど幅広い用途があります。初期値を省略すると空配列でTypeErrorになるため、常に初期値を指定するのが安全です。TypeScriptでは初期値に型アノテーションをつけることで型推論が正確になります。
array.reduce(callbackFn(accumulator, currentValue, index?, array?) => result, initialValue)
accumulatorT前回のコールバック戻り値(初回は initialValue)currentValueT現在処理中の要素initialValueT初期値(省略すると最初の要素が使われる)最後のコールバック呼び出しの戻り値(単一の値)
初期値(第2引数)を必ず指定すると空配列でも安全。TypeScriptでは初期値に型アノテーションをつける。