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

为什么JavaScript函数generateQuestionIndex返回undefined?

函数返回undefined的原因及修复

你的generateQuestionIndex函数会返回undefined,核心问题出在递归分支的处理上:

  • 当随机生成的index < 7时,你调用了递归函数generateQuestionIndex(),但没有把这个递归调用的结果返回出去。这时候这个分支执行完后没有任何return语句,函数就会默认返回undefined。
  • 只有当index == 7时,函数才会执行return index + 1,返回有效的数值。

修复后的代码

function generateQuestionIndex() {
  var index = Math.floor(Math.random() * 8);
  if (index < 7) {
    // 必须把递归调用的结果return,才能让上层函数拿到最终返回值
    return generateQuestionIndex();
  } else if (index == 7) {
    alert('return' + index);
    return index + 1;
  }
}

document.getElementById("demo").innerHTML = generateQuestionIndex();

修改后,每次递归都会把最终的返回值逐层传递回去,不管递归多少次,最终函数都会返回index ==7时的index+1,不会再出现undefined的情况。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.13 17:17:09