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

JavaScript如何合并数组中itemId相同元素并累加对应数量、金额字段

原有代码问题
  • 遗漏了需要累加的Amount字段的取值和累加逻辑
  • 初始化分组对象时错误将itemName初始值设置为0,逻辑不严谨
正确实现代码
let result = Object.values(this.orderDetail.reduce((c, {itemId, itemRate, itemQuantity, itemName, Amount}) => {
  // 首次遇到对应itemId时初始化
  if (!c[itemId]) {
    c[itemId] = {
      itemId,
      itemName,
      itemRate: 0,
      itemQuantity: 0,
      Amount: 0
    };
  }
  // 累加数值字段
  c[itemId].itemRate += itemRate;
  c[itemId].itemQuantity += itemQuantity;
  c[itemId].Amount += Amount;
  return c;
}, {}));
运行效果

针对你提供的测试数组,运行后会合并两个重复itemId的条目:

  • itemId为C10的条目合并后:itemQuantity为2、itemRate为100、Amount为100,itemName保留为Dry fruit
  • itemId为C3的条目合并后:itemQuantity为2、itemRate为80、Amount为80,itemName保留为Butter scotch
    其余itemId唯一的条目不做修改,数值保持原样。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 08:15:05