我的 Nodejs 函数返回未定义而不是值

问题描述 投票:0回答:1

`

function summation(num, args=0) {

    let value = args;
    value += num;
    num -= 1;
    if(num == 0){
        return value;
    }
    summation(num, value);

}
console.log(summation(3));

求和函数类似于阶乘,计算从 1 到 num 的数字并将它们添加到总计中。 该函数调用自身并不断将后续数字从零添加到提供的数字,直到为零,然后返回值。 如果我将 3 传递给函数,函数应该返回 6,但是,我得到一个 undefined。我在 vs code 中使用了一个断点来检查函数到底在做什么,并且 6 实际上存储在最后一个点的值中,但是,6 突然在 return 语句上变成了未定义的右侧。

javascript node.js recursion undefined
1个回答
1
投票

调用时需要返回求和结果,这样应该可以解决问题:

function summation(num, args=0) {

    let value = args;
    value += num;
    num -= 1;
    if(num == 0){
        return value;
    }
    return summation(num, value);
}

for(let i of [1,2,3,4]) {
    console.log(`Summation(${i}):`, summation(i));
}

© www.soinside.com 2019 - 2024. All rights reserved.