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

使用展开运算符计算数组平均值时函数无返回结果的问题排查

问题原因及修复方案

你的代码存在两个核心问题,导致无法得到正确的平均值结果:

  • sum是函数而非求和数值
    你定义的sum是一个箭头函数,并非直接计算出的总和值。执行console.log(sum)时打印的是函数本身,后续用sum / arr.length属于将函数与数字做除法,结果会是NaN(非有效数字)。

  • 未调用求和函数并传入参数
    你需要主动调用求和函数,并用展开运算符把数组元素传递进去,才能得到实际的总和数值。

修复后的代码:

let arr = [1, 2, 3, 4, 5];
console.log(...arr);
// 定义求和函数,用剩余参数接收传入的元素
let getSum = (...nums) => nums.reduce((a, b) => a + b);
// 调用函数,用展开运算符传递数组元素,得到总和
let sum = getSum(...arr);
console.log(sum);

// 计算并打印平均值
const avg = sum / arr.length;
console.log(avg); // 输出3

补充说明:

  • 把函数名改成getSum是为了避免和存储总和的变量sum混淆,语义更清晰;
  • 用const声明avg(如果不需要重新赋值),符合JavaScript变量声明的最佳实践;
  • 函数里的...nums是剩余参数语法,用来把传入的单个元素重新收集成数组,而调用时的...arr是展开运算符,用来把数组拆成单个参数传递,二者配合实现了用展开运算符辅助求和的需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.03 09:25:02