简体   繁体   English

为什么console.log(fibonacci(3)); 打印未定义?

[英]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 . 你错过了returnfibonacci(n - 1)else

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM