JavaScript | 配列メソッドの使い分け(map / forEach / filter / reduce の違い)

JavaScript JavaScript
スポンサーリンク

いいテーマです!配列メソッドは「どれを使えばいいのか」が最初は混乱しやすいポイント。ここでしっかり整理しておきましょう。


配列メソッドの使い分け

メソッド目的戻り値使いどころサンプルコード
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 は「新しい値を返す」ので、データ処理に向いている
タイトルとURLをコピーしました