javascript - JavaScript 中的递归出现错误

标签 javascript recursion

var summation = function(num) {
  if (num <= 0) {
    console.log("number should be greater than 0");
  } else {
    return (num + summation(num - 1));
  }
};
console.log(summation(5));

它给了我 NaN 错误,但我想要数字的求和。我在哪里犯了错误?

最佳答案

在上一次迭代中,您正确检查输入是否为 <= 0 ,但随后不返回任何内容,这会导致隐式返回值 undefined .

添加undefined数字结果为 NaN :

console.log(1 + undefined); // NaN

要解决此问题,请返回 0如果您的取消条件已满足:

var summation = function(num) {
  if (num <= 0) {
    console.log("number should be greater than 0");
    return 0;
  } else {
    return (num + summation(num - 1));
  }
};
console.log(summation(5));

关于javascript - JavaScript 中的递归出现错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39103214/

相关文章:

java - 在二叉树的节点类中递归

c++ - 如何使用 "wrapper function"调用不带参数的递归函数 n 次?

javascript - Aurelia Babel 未知选项 base.modules 错误

javascript - 按钮单击更改颜色

javascript - 开 Jest - 将测试分开到另一个文件中

haskell - 递归还是列表理解?

javascript - 如何将数据从客户端表单输入传输到服务器端 Nodejs 脚本?

javascript - 当状态更新时,带有三元运算符的组件不会重新渲染reactjs

haskell - 埃拉托斯特尼筛无限列表

java - 使用 ArrayList 的 BST 中序遍历