Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
javascript斐波那契序列返回未定义_Javascript - Fatal编程技术网

javascript斐波那契序列返回未定义

javascript斐波那契序列返回未定义,javascript,Javascript,我是javascript新手,我正在尝试编写一个小函数返回斐波那契序列。这是我的密码: 函数fib2(n){ 设fib=[]; fib[0]=1; fib[1]=1; 对于(变量i=2;i

我是javascript新手,我正在尝试编写一个小函数返回斐波那契序列。这是我的密码:

函数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));