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

JavaScript实现getSpeedStatistic函数时平均值计算错误求助

问题排查:getSpeedStatistic函数平均值计算错误

错误原因

你在循环内部重复计算平均值并累加,完全违背了平均值的计算逻辑。平均值的正确计算方式是总和除以数组长度,只需要计算一次,但你现在每次循环都把当前累加的sum除以长度,再把结果累加到average变量里,导致最终结果是多次中间值的总和,自然和预期不符。

比如第一个测试用例[5, 0, 8, 1]:

  • 循环过程中sum依次为5、5、13、14
  • 每次的sum/4取整后是1、1、3、4,累加后得到9,这就是你看到错误结果的原因

修正后的代码

function getSpeedStatistic(testResults) {
  // 处理空数组边界情况(可选,根据需求调整)
  if (testResults.length === 0) {
    return [0, 0, 0];
  }

  let min = testResults[0];
  let max = testResults[0];
  let sum = 0;

  for(const number of testResults){
    if(number > max){
      max = number;
    }
    if(number < min){
      min = number;
    }
    sum += number;
  }

  // 循环结束后计算一次向下取整的平均值
  const average = Math.floor(sum / testResults.length);
  return [min, max, average];
};

验证测试用例

  • 输入[5, 0, 8, 1]:sum=14,14/4=3.5,向下取整得3,返回[0, 8, 3],符合预期
  • 输入[1, 2, 2, 3, 3, 3, 3, 18]:sum=35,35/8=4.375,向下取整得4,返回[1, 18, 4],符合预期
  • 输入[4.5, 6.7, 9.2, 1]:sum=21.4,21.4/4=5.35,向下取整得5,返回[1, 9.2, 5],符合预期

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 22:35:49