修复斐波那契序列脚本(javascript)

修复斐波那契序列脚本(javascript),javascript,arrays,for-loop,Javascript,Arrays,For Loop,我试图写一个脚本,将创建斐波那契顺序的数字,我不明白为什么这是不工作 var output = []; var n = output.length; var nextNum = output[n-1] + output[n-2]; function fibo (numQuantity) { for (var i=1; i<numQuantity ; i++) { if (n>1){ output.push(nextNum); console.log(output);

我试图写一个脚本,将创建斐波那契顺序的数字,我不明白为什么这是不工作

var output = [];
var n = output.length;
var nextNum = output[n-1] + output[n-2];

function fibo (numQuantity) {
for (var i=1; i<numQuantity ; i++)
{
  if (n>1){ 
  output.push(nextNum);
  console.log(output);
}
else if (n<2)
  {output.push(1);
  console.log(output);}
}
}

在原始代码中,n永远不会更改,因为您只在开始时分配它

var输出=[]; 函数fibonumquantity{ 对于var i=1;i1{ output.pushnextNum; console.logoutput; } 如果n 函数fibonumQuantity{ 让输出=[0,1]; 如果数量<2{ 返回output.slice0,numQuantity; } 福勒特i=2;i 您需要将n++添加到代码的末尾并更改结束条件

以下是完整代码:

var output = [];
var n = output.length;
var nextNum = output[n-1] + output[n-2];

function fibo (numQuantity) {
    for (var i=1; i<= numQuantity ; i++)
    {
        if (n==0) {
            output.push(0);
            console.log(output);
        }
        else if (n==1) { 
            output.push(1);
            console.log(output);
        }
        else if (n>1) {
            output.push(output[n-1] + output[n-2]);
            console.log(output);
        }

        n++;
    }
}

fibo(7);

你的n值永远不会改变,你的下一个n值也永远不会改变?你在任何地方都不会改变n。在var n=output.length赋值时,它保持为0;