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

JavaScript JavaScript
スポンサーリンク

では実践的な例として「ショッピングカートの合計金額を計算する」処理を、filter / map / reduce を組み合わせて書いてみましょう。


ショッピングカートの例

データ(カートの中身)

const cart = [
  { name: 'Tシャツ', price: 1500, quantity: 2 },
  { name: 'ジーンズ', price: 5000, quantity: 1 },
  { name: '靴', price: 8000, quantity: 0 }, // 在庫切れで数量0
  { name: '帽子', price: 2000, quantity: 1 }
];
JavaScript

ステップごとの処理

  1. filter → 数量が 1 以上の商品だけ残す
  2. map → 各商品の「小計(price × quantity)」を計算
  3. reduce → 小計を全部足して合計金額を出す

コード例

const total = cart
  .filter(item => item.quantity > 0)          // 数量がある商品だけ
  .map(item => item.price * item.quantity)    // 小計を計算
  .reduce((acc, subtotal) => acc + subtotal, 0); // 合計を計算

console.log(total); // 10000 (Tシャツ 3000 + ジーンズ 5000 + 帽子 2000)
JavaScript

ポイント

  • filter で「不要なものを除外」
  • map で「必要な形に変換」
  • reduce で「1つの値にまとめる」

この流れはデータ処理の黄金パターンです。
実務でも「データを絞る → 加工する → 集計する」という流れは頻出します。


💡 さらに応用すると、「税込み価格を計算」したり、「商品名の一覧を作る」なども同じ流れで書けます。

タイトルとURLをコピーしました