いいテーマです!配列メソッドは「どれを使えばいいのか」が最初は混乱しやすいポイント。ここでしっかり整理しておきましょう。
配列メソッドの使い分け
| メソッド | 目的 | 戻り値 | 使いどころ | サンプルコード |
|---|---|---|---|---|
| forEach | 配列の全要素に対して「処理を実行」する | なし(undefined) | 単純に繰り返し処理したいとき | js [1,2,3].forEach(n => console.log(n)); // 1,2,3 |
| map | 各要素を「変換」して新しい配列を作る | 新しい配列 | 値を加工して別の配列を作りたいとき | js const doubled = [1,2,3].map(n => n*2); // [2,4,6] |
| filter | 条件に合う要素だけを「抽出」する | 新しい配列 | 条件で絞り込みたいとき | js const evens = [1,2,3,4].filter(n => n%2===0); // [2,4] |
| reduce | 配列を「1つの値」にまとめる | 単一の値 | 合計・平均・オブジェクト化など集計処理 | js const sum = [1,2,3,4].reduce((acc,n)=>acc+n,0); // 10 |
具体例で比較
1. forEach → 単純な処理
const fruits = ['apple', 'banana', 'orange'];
fruits.forEach(f => console.log(f.toUpperCase()));
// APPLE
// BANANA
// ORANGE
JavaScript👉 「処理するだけ」で新しい配列は作らない。
2. map → 変換して新しい配列
const prices = [100, 200, 300];
const withTax = prices.map(p => p * 1.1);
console.log(withTax); // [110, 220, 330]
JavaScript👉 元の配列を加工して「別の配列」を作る。
3. filter → 条件で絞り込み
const ages = [15, 18, 20, 25];
const adults = ages.filter(age => age >= 20);
console.log(adults); // [20, 25]
JavaScript👉 条件に合う要素だけ残す。
4. reduce → 集計やまとめ
const scores = [70, 80, 90];
const average = scores.reduce((acc, s, _, arr) => acc + s / arr.length, 0);
console.log(average); // 80
JavaScript👉 配列全体を「1つの値」にまとめる。
使い分けのコツ
- 処理だけしたい → forEach
- 変換して新しい配列が欲しい → map
- 条件で絞り込みたい → filter
- 集計・まとめたい → reduce
💡 補足:
forEachは「副作用(console.log や DOM 操作など)」に使うmap/filter/reduceは「新しい値を返す」ので、データ処理に向いている
