[英]Why console.log(fibonacci(3)); print undefined?
let mem = [0, 1, 1];
const fibonacci = (n) => {
if (n < 2) {
return mem[n];
} else if (n == 2) {
console.log(mem.length-1);
console.log((mem[mem.length-1]));
// return (mem[mem.length - 1]);
return (mem[mem.length-1]); // why this return statement return undefined???
}
else {
mem.push(mem[mem.length - 1] + mem[mem.length - 2]);
fibonacci(n - 1);
}
};
console.log(fibonacci(3));
Expected output: 2.. 预期产量:2 ..
Modify your code as follows: 修改您的代码如下:
let mem = [0, 1, 1];
const fibonacci = (n) => {
if (n < 2) {
return mem[n];
} else if (n == 2) {
console.log(mem.length-1);
console.log((mem[mem.length-1]));
// return (mem[mem.length - 1]);
return (mem[mem.length-1]); // why this return statement return undefined???
}
else {
mem.push(mem[mem.length - 1] + mem[mem.length - 2]);
return fibonacci(n - 1);
}
};
console.log(fibonacci(4));
You missed return
before fibonacci(n - 1)
in else
. 你错过了return
前fibonacci(n - 1)
在else
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.