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

如何用for循环计算数组平均值,修复JS代码console.log无输出问题

可以通过for循环遍历数组计算平均值,你的代码无法输出是语法错误导致的。

问题原因

最后一行console.log没有输出是因为calcAverage函数内部的for循环触发了死循环:

  • 原for循环的终止条件写为arr.length,只要数组长度不为0,这个判断就永远为真,循环会无限执行,自然不会走到后续的console.log步骤。
  • 代码还存在两处冗余/隐患:
    • 计算小费的循环里calcTip(tipsTotal.push(value))是多余代码,push方法返回的是数组新长度,你并没有用到这行代码的返回值,完全可以删除。
    • 求和变量sum定义在全局作用域,多次调用calcAverage时会出现累加错误,建议移到函数内部。

修复后代码

const bills = [22, 295, 176, 440, 37, 105, 10, 1100, 86, 52]
const tipsTotal = [];

const calcTip = function(bill) {
  return bill >= 50 && bill <= 300 ? bill * .15 : bill * .20;
}

// 移除冗余的calcTip调用
for (let i = 0; i < bills.length; i++) {
  const value = calcTip(bills[i]);
  tipsTotal.push(value);
}

console.log(tipsTotal);

const calcAverage = function(arr) {
  // sum移到函数内部,避免全局污染和重复调用累加问题
  let sum = 0;
  // 补充正确的循环终止条件:i < arr.length
  for (let i = 0; i < arr.length; i++) {
    sum += arr[i];
  }
  return sum / arr.length;
}

console.log(calcAverage(bills));

运行结果

  • 小费数组输出:[4.4, 44.25, 26.4, 88, 7.4, 15.75, 2, 220, 12.9, 7.8]
  • 账单平均值输出:232.1

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 14:39:03