javascript斐波那契序列返回未定义
我是javascript新手,我正在尝试编写一个小函数返回斐波那契序列。这是我的密码:javascript斐波那契序列返回未定义,javascript,Javascript,我是javascript新手,我正在尝试编写一个小函数返回斐波那契序列。这是我的密码: 函数fib2(n){ 设fib=[]; fib[0]=1; fib[1]=1; 对于(变量i=2;i
函数fib2(n){
设fib=[];
fib[0]=1;
fib[1]=1;
对于(变量i=2;i
此外
如果我是您,我会尝试更改函数的名称和函数中变量的名称,以便进行区分
function fib(n) {
let arr = [];
arr[0] = 1;
arr[1] = 1;
for(let i = 2; i < n; i++){
arr[i] = arr[i-2] + arr[i-1];
}
return arr;
}
console.log(fib(6));
函数fib(n){
设arr=[];
arr[0]=1;
arr[1]=1;
for(设i=2;i
如果要获取序列的最后一个元素
function lastFib(n){
let prev = 1;
let now = 1;
let temp = 0;
for(let i = 2; i < n; i++){
temp = now;
now = prev + now;
prev = temp;
}
return now;
}
console.log(lastFib(6));
函数lastFib(n){
设prev=1;
现在设=1;
设温度=0;
for(设i=2;i
在for循环之后,变量i的值为n,因此fib[i]不在数组中
函数fib2(n){
设fib=[];
fib[0]=1;
fib[1]=1;
对于(变量i=2;i 控制台日志(fib2(6))代码>访问不存在的i=n
索引。最后一个增量达到n
。您将离开数组。当i
等于5
时,您的循环条件会在循环执行后将其增加到6
。循环结束后,i
现在等于6
fib[6]
是未定义的
。谢谢您的回答。没错。还有一个问题,我可以返回fib[I]吗?我尝试执行return fib[I],但它仍然没有定义。您可以在return语句之前执行I,因此它的值为n-1,但它与我发布的代码相同。或者如果你想定义fib[i],你也可以在for循环之后做fib[i]=fib[i-2]+fib[i-1]。
function fib(n) {
let arr = [];
arr[0] = 1;
arr[1] = 1;
for(let i = 2; i < n; i++){
arr[i] = arr[i-2] + arr[i-1];
}
return arr;
}
console.log(fib(6));
function lastFib(n){
let prev = 1;
let now = 1;
let temp = 0;
for(let i = 2; i < n; i++){
temp = now;
now = prev + now;
prev = temp;
}
return now;
}
console.log(lastFib(6));