JavaScript | 可変長引数(rest パラメータ)

JavaScript
スポンサーリンク

では、もう少し実務寄りに拡張して、商品名と価格のオブジェクト形式でショッピングカートの合計金額を計算する例を作ります。


例題:商品オブジェクト形式でのカート計算

// 商品をオブジェクトで渡すと合計金額を計算する関数
function calculateCart(userName, ...items) {
  console.log("購入者:", userName);

  // 各商品の名前と価格を表示
  items.forEach(item => {
    console.log(`商品: ${item.name}, 価格: ${item.price}円`);
  });

  // 合計金額を計算
  const total = items.reduce((acc, item) => acc + item.price, 0);
  console.log("合計金額:", total, "円");

  return total;
}

// 使用例
calculateCart(
  "太郎",
  { name: "りんご", price: 120 },
  { name: "バナナ", price: 80 },
  { name: "オレンジ", price: 150 }
);

// 出力:
// 購入者: 太郎
// 商品: りんご, 価格: 120円
// 商品: バナナ, 価格: 80円
// 商品: オレンジ, 価格: 150円
// 合計金額: 350 円
JavaScript

解説

  1. userName
    • 最初の引数は購入者名として受け取る
  2. ...items
    • restパラメータで、複数の商品オブジェクトをまとめて配列として受け取る
  3. forEach で表示
    • 配列の中のオブジェクトを一つずつ取り出して、商品名と価格を表示
  4. reduce で合計計算
    • 各商品の price を足し合わせて合計金額を計算

💡 ポイント

  • restパラメータとオブジェクトを組み合わせると、可変個数かつ複雑なデータも簡単に扱える
  • 関数の柔軟性が高く、実務でも使いやすい設計になる
タイトルとURLをコピーしました