`
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 语句上变成了未定义的右侧。
调用时需要返回求和结果,这样应该可以解决问题:
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));
}