Pivohub
← 返回模型测试

这段求平均值的代码错在哪?

看模型能不能定位边界错误,并给出最小修复。

测试提示词
下面这段 JavaScript 求数组平均值,有什么问题?请指出 bug,并给出修复后的代码。

```js
function average(nums) {
  let sum = 0;
  for (let i = 1; i < nums.length; i++) {
    sum += nums[i];
  }
  return sum / nums.length;
}
```

观察点

  • 是否发现循环从 i = 1 开始,漏掉了第一个元素。
  • 是否指出空数组会得到 NaN,或除以 0 的问题。
  • 修复是否保持函数意图,没有引入新的边界错误。

参考方向

function average(nums) {
  if (!nums.length) return 0;
  let sum = 0;
  for (let i = 0; i < nums.length; i++) sum += nums[i];
  return sum / nums.length;
}

空数组返回 0 是产品选择;也可以抛错,但要说明。

常见表现

  • 只把 i = 1 改成 i = 0,没提空数组。
  • 用 reduce 重写但漏掉初始值。
  • 修复后没有解释为什么。

注意

这是小型代码审查,不代表完整编程能力;可以再让它跑测试用例。

最后验证:2026年10月25日

代码调试