编写递归JavaScript函数返回“undefined”

时间:2015-04-19 14:23:41

标签: javascript function recursive-datastructures

我正在尝试学习JS中的递归函数,但由于某种原因,结果是 undefined 我想分别警告(4,3,2,1,0)。

function someFun(number) {
  if (number < 0) {
    return 1;
  } 
  else {
    alert(number = someFun(number - 1))
  }
}
someFun(4)

1 个答案:

答案 0 :(得分:5)

您的函数中只有一个return语句。当else语句的if路径被采用时,不会返回任何内容。

那就是说,你真的不需要需要一个返回值,因为你只想打印数字序列(以降序顺序):

function someFun(number) {
  if (number >= 0) {
    alert(number);
    someFun(number - 1);
  }
}
someFun(4);

如果您希望以升序顺序打印数字,则只需颠倒alert()和递归调用的顺序。