首页 > 解决方案 > 为什么我的斐波那契生成器在运行时返回未定义

问题描述

我正在创建一个斐波那契生成器,它将在调用函数时返回一个数组作为输出。例如,如果我调用函数“fibonacciGenerator(3)”,则输出应该是 [0, 1, 1] 的数组。运行代码时,我一直不确定。为什么我总是不确定?解决这个问题的最佳方法是什么?

function fibonacciGenerator(n) {

    //starting fibonacci array from 0 and 1
    var fib = [0,1]; 


for (var i = 0; i < fib.length; i++) {

  if(fib[i] === 2){
      //add the two preceding numbers to get sum. Fn = Fn-1 + Fn-2
     var Fn = fib[i -1] + fib[i -2];
     console.log(Fn);                 
  }
}

    //Return an array of fibonacci numbers.
    return Fn;
}


fibonacciGenerator (3);

标签: javascript

解决方案


您使用了错误的逻辑。将添加内容推送到数组中,不要为此创建新变量,删除条件错误的 if 语句并从 2 开始 for loo

function fibonacciGenerator(n) {
  //starting fibonacci array from 0 and 1
  var fib = [0, 1];
  for (var i = 2; i < n; i++)
    //add the two preceding numbers to get sum. Fn = Fn-1 + Fn-2
    fib.push(fib[i - 1] + fib[i - 2]);
}
//Return an array of fibonacci numbers.
return fib;
}
console.log(fibonacciGenerator(7));


推荐阅读