You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在JavaScript中编写接收未知数量参数的总价计算函数?

计算多个商品的总价总和

针对你需要计算不确定数量商品总价总和的需求,这里有几种实用的实现方式:

方法1:传入商品对象数组(推荐)

这种方式把每个商品的数量和单价封装成对象,逻辑清晰,不容易传错参数:

// 复用你原来的单个商品计算函数
const calculatePrice =(quantity,unitPrice)=>{
  return quantity*unitPrice;
}

// 多商品总价计算函数
const calculateTotalPrice = (items) => {
  let total = 0;
  // 遍历每个商品,累加总价
  for (const item of items) {
    total += calculatePrice(item.quantity, item.unitPrice);
  }
  console.log(total);
  return total;
};

// 调用示例:传入两个商品的数组
calculateTotalPrice([
  { quantity: 2, unitPrice: 3.5 },
  { quantity: 3, unitPrice: 4.8 }
]); // 输出 21.4

如果想更简洁,也可以用数组的reduce方法:

const calculateTotalPrice = (items) => {
  const total = items.reduce((sum, item) => {
    return sum + calculatePrice(item.quantity, item.unitPrice);
  }, 0);
  console.log(total);
  return total;
};

方法2:用剩余参数接收成对的数量和单价

如果不想用对象数组,也可以直接传入多组成对的数量和单价参数:

const calculateTotalPrice = (...args) => {
  let total = 0;
  // 每次取两个参数,计算单个商品总价后累加
  for (let i = 0; i < args.length; i += 2) {
    total += args[i] * args[i + 1];
  }
  console.log(total);
  return total;
};

// 调用示例:依次传入数量、单价、数量、单价...
calculateTotalPrice(2, 3.5, 3, 4.8); // 输出 21.4

注意事项

  • 方法1的可读性和可维护性更好,尤其是商品属性增多(比如加入折扣)时,扩展起来更方便;
  • 方法2要确保参数是成对传入的,否则会出现计算错误。

内容的提问来源于stack exchange,提问作者Alex Zhang

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.22 02:03:20