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

JavaScript求和函数console.log正常输出但return返回undefined,如何解决?

问题分析与解决

你遇到的核心问题很明确:你的函数没有把计算好的总和返回给外部调用者,只是用console.log在函数内部把结果打印出来了。

在JavaScript里,函数如果没有显式写return语句,默认会返回undefined。所以你执行var sum = addNumbers(...)时,sum拿到的就是这个默认值,而console.log(x)只是在控制台输出结果,并不会把值传递给函数外部。

修改后的代码

只需要在函数末尾添加return x;语句,把计算好的总和返回出去就行:

function addNumbers(arr){ 
  var x = 0 ; 
  // 建议给i加上var声明,避免污染全局变量
  for(var i = 0; i < arr.length; i++){ 
    x = x + arr[i]; 
  } 
  console.log(x); // 保留内部打印也没问题
  return x; // 关键:把结果返回给调用者
} 
var sum = addNumbers([2, 10, 4, 8, 4]);
console.log(sum); // 现在这里会输出28了

额外小提示

循环里的i如果不声明的话,会自动成为全局变量,这可能会引发一些意想不到的问题,所以最好加上var(或者ES6的let)来限定它的作用域。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 07:07:47