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

我的JavaScript平均值计算器运行返回infinity,该如何修复?

JavaScript求平均值函数异常修复方案

错误原因

  • 错误获取参数长度:代码中使用avg.length获取参数总数,avg.length是函数对象的形参个数属性,由于使用了剩余参数...args作为唯一形参,函数形参个数为0,除以0会直接得到Infinity结果,正确应该用接收实参的数组args的length属性获取传入数字的总数。
  • 累加逻辑错误:当前代码的运算逻辑不符合平均值计算规则,平均值需要先统计所有参数的总和,再统一除以参数总数,而不是每一步累加时单独做除法。

修复后可正常运行的代码

function avg(...args){
  // 先对所有参数求和,再除以参数总数
  return args.reduce(function (a, b) {
    return a + b
  }, 0) / args.length
}
console.log(avg(1, 2, 3, 4, 5)) // 输出结果为3,符合预期

兼容优化(可选)

如果需要兼容无参数传入的场景避免返回NaN,可以增加边界判断:

function avg(...args){
  // 无参数传入时可根据业务需求调整返回值,也可以替换为抛出异常提示
  if(args.length === 0) return 0
  return args.reduce((a,b) => a + b, 0) / args.length
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 22:06:03