在JavaScript中递归时出错
getting error on recursion in JavaScript
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));
尝试
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));
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));
早期的没有终止递归语句
相关文章:
- 数组在递归方法中设置为null
- Kendo:我该如何在树视图中创建一个递归的hieiarchy
- 递归使用 eval() 是检查程序执行的好方法吗?
- 使用递归、Ramda.js和无点样式重构字符串的getPermutations()
- 递归深度比较
- Eloquent JavaScript递归示例如何终止为返回1,但仍然输出指数值
- 递归函数中断
- 如何递归地获取嵌套对象中所有子对象的列表
- JavaScript 素数搜索无限递归
- 在递归生成器函数中,yield后面的*(星号/星号)语法意味着什么
- 递归|两个函数名
- 有没有一种方法可以在Javascript中进行可变递归currying
- 如何对不同的表递归使用以下代码
- 将jQuery对象传递到setTimeout递归函数中
- 有更好的方法吗?(递归解析HTML unicode实体)
- 为什么递归生成器函数没有't在ES2015工作
- 是什么导致了“;无方法”;函数递归调用自身时出错
- 递归方法调用出错
- 在JavaScript中递归时出错
- 我的递归函数哪里出错了