JavaScript map
と reduce
の違いを説明します。
map メソッド
-
map
メソッドは、配列の各要素に対して与えられたコールバック関数を実行し、新しい配列を作成します。 - 元の配列は変更されず、新しい配列が作成されるため、元の配列の要素に影響を与えません。
- コールバック関数は、各要素に対して適用され、その結果が新しい配列の要素となります。
const numbers = [1, 2, 3];
const doubledNumbers = numbers.map((num) => num * 2);
// doubledNumbers: [2, 4, 6]
// numbers: [1, 2, 3] (元の配列は変更されない)
reduceメソッド
-
reduce
メソッドは、配列の各要素に対して与えられたコールバック関数を使って、単一の値を生成します。 - 初期値を指定することができ、この初期値は最初のコールバックの第一引数になります。
- コールバック関数は、前のコールバックの結果と現在の要素を利用して処理を行い、最終的な値を生成します。
const numbers = [1, 2, 3];
const sum = numbers.reduce((acc, num) => acc + num, 0);
// sum: 6 (1 + 2 + 3)
要約すると、map
は新しい配列を生成して各要素を変換するのに対して、reduce
は配列の要素を使って単一の値を生成するために使います。また、map
は各要素に対して同じ操作を適用するのに対して、reduce
は異なる要素ごとに異なる処理を適用することができます。