では、もう少し実務寄りに拡張して、商品名と価格のオブジェクト形式でショッピングカートの合計金額を計算する例を作ります。
例題:商品オブジェクト形式でのカート計算
// 商品をオブジェクトで渡すと合計金額を計算する関数
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解説
userName- 最初の引数は購入者名として受け取る
...items- restパラメータで、複数の商品オブジェクトをまとめて配列として受け取る
forEachで表示- 配列の中のオブジェクトを一つずつ取り出して、商品名と価格を表示
reduceで合計計算- 各商品の
priceを足し合わせて合計金額を計算
- 各商品の
💡 ポイント
- restパラメータとオブジェクトを組み合わせると、可変個数かつ複雑なデータも簡単に扱える
- 関数の柔軟性が高く、実務でも使いやすい設計になる


