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

JavaScript实现斐波那契数列函数返回值错误问题排查

代码存在的核心问题

  • 循环内插入了无效值:你已经通过fsec[i]=fsec[i-2]+fsec[i-1]给对应索引位赋值了正确的斐波那契数值,后续多余的fsec.push(i)会把当前循环的索引i作为无效值插入数组末尾,直接打乱了数组索引和斐波那契序列的对应关系。
  • 返回值逻辑错误:你最终返回的是数组最后一位元素,而每轮循环最后插入的都是索引i,所以最终返回的永远是你传入的num参数本身,完全不是对应位置的斐波那契值。

修复后的代码

const fibonacci = function(num) {
    // 增加参数合法性判断,避免异常输入
    if (num < 0) return "请传入非负整数";
    let fsec=[];
    fsec[0]= 0;
    fsec[1]= 1;
    // 小于2的特殊情况直接返回对应值
    if(num < 2) return fsec[num];
    
    for(let i=2; i<=num; i++){
        // 删除多余的push操作,仅保留赋值逻辑
        fsec[i]=fsec[i-2]+fsec[i-1];
    }
    // 直接返回目标索引对应的数值即可
    return fsec[num]
};

// 测试:fibonacci(6) 运行返回8,符合从0开始计数的斐波那契序列第6位的结果

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 21:06:06