为什么我的斐波那契函数在循环不工作时使用javascript?

为什么我的斐波那契函数在循环不工作时使用javascript?,javascript,Javascript,为什么生成斐波那契序列的代码不起作用?当n=10时,斐波那契数列会是这样的:[0,1,1,2,3,5,8,13,21,34],如果更大,依此类推,最后两个数字相加,得到下一个数字。我尝试使用while循环,就像我最初尝试使用for循环一样,但我无法确定要在()中进行的更改。我不认为在前8行代码中有任何问题,因为我以前尝试过它们,它们工作得很好,所以问题在后面,但我无法解决…提前谢谢 var seq = []; function fibonacciGenerator(n) { if (

为什么生成斐波那契序列的代码不起作用?当n=10时,斐波那契数列会是这样的:[0,1,1,2,3,5,8,13,21,34],如果更大,依此类推,最后两个数字相加,得到下一个数字。我尝试使用while循环,就像我最初尝试使用for循环一样,但我无法确定要在()中进行的更改。我不认为在前8行代码中有任何问题,因为我以前尝试过它们,它们工作得很好,所以问题在后面,但我无法解决…提前谢谢

var seq = [];

function fibonacciGenerator(n) {

    if (n === 1) {
      seq.push(0);

    } else if (n === 2) {
      seq.push(0, 1);

    } else if (n > 2) {
      seq.push(0, 1);

      while(len < n) {
 var len = seq.length;
        seq.push(seq[len] + seq[len - 1]);
      }  
    }

  return seq;
}

console.log(fibonacciGenerator(10));
现在我的控制台正在打印[0,1]

编辑:


好了,伙计们,我自己修复了代码,现在如果有人想知道如何使用fib-seq的while-loop,它就可以工作了

var seq = [];

function fibonacciGenerator(n) {

if (n === 1) {
seq.push(0);

} else if (n === 2) {
seq.push(0, 1);

} else if (n > 2) {
seq.push(0, 1);

var len = seq.length;

while (len < n) {
  seq.push(seq[len-1] + seq[len - 2]);
  len++;
}
}

return seq;
}

console.log(fibonacciGenerator(10));
var seq = [];

function fibonacciGenerator(n) {

if (n === 1) {
seq.push(0);

} else if (n === 2) {
seq.push(0, 1);

} else if (n > 2) {
seq.push(0, 1);

var len = seq.length;

while (len < n) {
seq.push(seq[len-1] + seq[len - 2]);
len++;
}
}

return seq;
}

console.log(fibonacciGenerator(10));
var-seq=[];
函数fibonacciGenerator(n){
如果(n==1){
顺序推送(0);
}else if(n==2){
顺序推送(0,1);
}否则,如果(n>2){
顺序推送(0,1);
var len=序列长度;
while(len
这是一个合适的斐波那契模:
函数fibonacciGenerator(n){
var fib=[];//初始化数组!
fib[0]=0;
fib[1]=1;
对于(变量i=2;iconsole.log(fibonacciGenerator(10))
这里是一个合适的fibonacci模块:
函数fibonacciGenerator(n){
var fib=[];//初始化数组!
fib[0]=0;
fib[1]=1;
对于(变量i=2;iconsole.log(fibonacciGenerator(10))
好了,伙计们,我自己修复了代码,现在如果有人想知道如何使用fib-seq的while循环,它就可以工作了。这里是:

var seq = [];

function fibonacciGenerator(n) {

if (n === 1) {
seq.push(0);

} else if (n === 2) {
seq.push(0, 1);

} else if (n > 2) {
seq.push(0, 1);

var len = seq.length;

while (len < n) {
  seq.push(seq[len-1] + seq[len - 2]);
  len++;
}
}

return seq;
}

console.log(fibonacciGenerator(10));
var seq = [];

function fibonacciGenerator(n) {

if (n === 1) {
seq.push(0);

} else if (n === 2) {
seq.push(0, 1);

} else if (n > 2) {
seq.push(0, 1);

var len = seq.length;

while (len < n) {
seq.push(seq[len-1] + seq[len - 2]);
len++;
}
}

return seq;
}

console.log(fibonacciGenerator(10));
var-seq=[];
函数fibonacciGenerator(n){
如果(n==1){
顺序推送(0);
}else if(n==2){
顺序推送(0,1);
}否则,如果(n>2){
顺序推送(0,1);
var len=序列长度;
while(len
好了,伙计们,我自己修复了代码,现在如果有人想知道如何使用fib-seq的while循环,它就可以工作了

var seq = [];

function fibonacciGenerator(n) {

if (n === 1) {
seq.push(0);

} else if (n === 2) {
seq.push(0, 1);

} else if (n > 2) {
seq.push(0, 1);

var len = seq.length;

while (len < n) {
  seq.push(seq[len-1] + seq[len - 2]);
  len++;
}
}

return seq;
}

console.log(fibonacciGenerator(10));
var seq = [];

function fibonacciGenerator(n) {

if (n === 1) {
seq.push(0);

} else if (n === 2) {
seq.push(0, 1);

} else if (n > 2) {
seq.push(0, 1);

var len = seq.length;

while (len < n) {
seq.push(seq[len-1] + seq[len - 2]);
len++;
}
}

return seq;
}

console.log(fibonacciGenerator(10));
var-seq=[];
函数fibonacciGenerator(n){
如果(n==1){
顺序推送(0);
}else if(n==2){
顺序推送(0,1);
}否则,如果(n>2){
顺序推送(0,1);
var len=序列长度;
while(len
While应为小写。您缺少了一个
}
@Andreas抱歉,我想格式化代码,我将其更改为
,而
现在添加了一个显示实际问题并包含对您假设它“不起作用”的解释还有来自控制台的任何错误消息。好的,我已经编辑并添加了有效的代码,错误消息
len
从未更改,因此
len
始终为false。看起来您假设len随着seq.length的增长而增加,而leng应该是小写的。您缺少了一个
}
@Andreas抱歉,我想格式化代码,我将其更改为
,而
现在添加了一个显示实际问题并包含对您假设它“不起作用”的解释还有来自控制台的任何错误消息。好的,我已经编辑并添加了有效的代码,错误消息
len
从未更改,因此
len
始终为false。看起来您假设len随着seq.length的增长而增加hank youu,实际上代码在数组中打印了1个额外的项,但是我通过删除第5行中的=来修复它,所以它是:函数fibonacciGenerator(n){var fib=[];//初始化数组!fib[0]=0;fib[1]=1;for(var I=2;I