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

JS递归实现数字累加出现操作反转、返回undefined如何解决?

JavaScript递归累加问题修复

错误原因

  • 递归调用分支未添加返回语句:在count <= 3的逻辑分支中,仅执行了sum(total, count)调用,没有将递归的执行结果返回,导致终止条件返回的累加值无法层层传递到最外层调用,最终返回undefined
  • 终止条件不匹配需求:当前代码仅设置了count <= 3的判断,只能实现1到3的累加,要完成1到10的累加需要调整终止判断阈值

修复代码

// 适配1到10累加的修复版本
function sum(total, count){
    if(count <= 10){
        total += count;
        count++;
        // 新增return返回递归调用结果
        return sum(total, count);
    }else{
        return total;
    }
}
var result = sum(0, 1);
console.log(result); // 输出55,为1到10的累加结果

简化递归写法

也可以用单参数实现更简洁的递归逻辑:

function sum(n) {
    // 终止条件:n为1时直接返回1
    if(n === 1) return 1;
    return n + sum(n - 1);
}
console.log(sum(10)); // 输出55

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 14:36:04