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

如何对包含嵌套数组的对象中各分类的quantity字段值求和

问题原因

  1. 遍历分类下的商品时,直接对quantity[property]赋值,每次都会覆盖上一次的结果,最终只保留了分类下最后一个商品的数量,没有做累加逻辑
  2. 存储结果的变量定义为数组不合适,使用字符串作为key存储数据用普通对象更合理

修复后的代码

const sum = () => {
  // 用对象存储各分类的总数量
  const quantitySum = {}
  for (const category in groupedData) {
    // 给当前分类设置初始累加值为0
    quantitySum[category] = 0
    // 遍历当前分类下所有商品累加数量
    for (let i = 0; i < groupedData[category].length; i++) {
      quantitySum[category] += groupedData[category][i].quantity
    }
  }
  return quantitySum
}

调用后返回结果为{ rice: 3, water: 2, tea: 1 },完全符合预期。

如果需要更简洁的写法,也可以用reduce方法实现:

const sum = () => {
  return Object.entries(groupedData).reduce((sumObj, [category, goodsList]) => {
    sumObj[category] = goodsList.reduce((total, item) => total + item.quantity, 0)
    return sumObj
  }, {})
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 08:45:04