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

JavaScript使用reduce计算商品价格总和返回undefined问题求助

问题根因

代码最终得到undefined是两处错误共同导致的:

  • 属性名笔误:累加价格时写了不存在的属性a.pricex,正确属性为a.price。即便遍历到价格为数字的商品,读取a.pricex只会得到undefined,和数字做加法会直接得到NaN。
  • 条件分支缺失返回值:reduce的回调要求每一次执行都必须返回下一轮迭代使用的累加值,你只在价格为数字类型的分支写了返回逻辑,遇到价格是空格、空字符串的商品时,函数没有显式返回值,默认返回undefined,直接打断累加流程,最终返回结果异常。
正确实现

修正笔误、补全非数字价格分支的返回逻辑即可:

const productsg = [ { product: 'banana', price: 3 }, { product: 'mango', price: 6 }, { product: 'potato', price: ' ' }, { product: 'avocado', price: 8 }, { product: 'coffee', price: 10 }, { product: 'tea', price: '' }, ]

const num = productsg.reduce((acc, item) => {
  // 价格为数字类型才累加,否则直接保留当前累加值进入下一轮
  return typeof item.price === 'number' ? acc + item.price : acc
}, 0)

console.log(num) // 运行输出27,即3+6+8+10的正确结果

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 22:45:39