【问题标题】:Writing a recursive JavaScript function returns "undefined"编写递归 JavaScript 函数返回“未定义”
【发布时间】:2015-04-19 14:23:40
【问题描述】:
我正在尝试学习 JS 中的递归函数,但由于某种原因,结果是 undefined 我想分别提醒 (4,3,2,1,0)。
function someFun(number) {
if (number < 0) {
return 1;
}
else {
alert(number = someFun(number - 1))
}
}
someFun(4)
【问题讨论】:
标签:
javascript
function
recursive-datastructures
【解决方案1】:
您的函数中只有一个return 语句。当if语句的else路径被取走时,什么都不返回。
也就是说,您真的不需要返回值,因为您只想打印数字序列(按降序顺序):
function someFun(number) {
if (number >= 0) {
alert(number);
someFun(number - 1);
}
}
someFun(4);
如果您希望以升序顺序打印数字,您只需颠倒alert() 和递归调用的顺序即可。