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

JavaScript:合并数组重复元素并对价格值求和

解决方案

可以通过对象分组+求和的方式实现需求,核心思路是用临时对象存储每个产品的累计价格,最后再转换回目标数组格式。

实现代码

var products = [["product_1", 6, "hamburger"],["product_2", 10, "cola"],["product_2", 7, "cola"], ["product1", 4, "hamburger"]];

// 按产品名称(第三个元素)分组,匹配你的期望结果
const grouped = {};

products.forEach(item => {
  const key = item[2]; // 用产品名称作为分组依据
  if (grouped[key]) {
    // 已有该产品分类,累加价格
    grouped[key][1] += item[1];
  } else {
    // 首次出现该分类,存入对象并保留产品ID
    grouped[key] = [...item];
  }
});

// 将分组对象转换为目标数组格式
const result = Object.values(grouped);
console.log(result);
// 输出:[["product_1", 10, "hamburger"],["product_2", 17, "cola"]]

代码说明

  1. 分组依据:选择数组第三个元素(产品名称)作为分组键,正好处理了输入中product1和product_1同属汉堡的情况,匹配你的期望结果。
  2. 求和逻辑:遍历原数组时,若当前产品分类已存在则累加价格,不存在则初始化分组并存入完整条目。
  3. 格式转换:通过Object.values()提取分组对象的所有值,直接得到目标二维数组。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 03:20:16