【发布时间】:2021-04-16 19:35:29
【问题描述】:
第一次发帖,所以我尽量遵守这里的规则。我正在尝试编写一个简单的函数,该函数使用递归来返回 1 和 num 之间所有数字的总和。我已经看到了这个解决方案,我知道它是如何工作的,但我不明白为什么这个解决方案不起作用。感谢您提供任何反馈。
const sumNums = (num) => {
let total = 0;
if(num >= 1) {
total += num;
sumNums(num-1);
}
return total;
}
console.log(sumNums(5)); // <-- returns 5
【问题讨论】:
-
你没有对
sumNums(num-1)的结果做任何事情。试试total = num + sumNums(num-1); -
您将总数重置为
0。这是唯一的问题。 -
或
const sumNums = n => n == 0 ? 0 : n + sumNums(n - 1) -
这不是@MrUpsidown 的唯一问题。
标签: javascript recursion