诡异的js递归问题

话不多说先上代码

function __FIND_UP_NUM(i) {

upNum = i

if (i === 0) {

return 0

} else {

if (i != 0) {

__FIND_UP_NUM(i - 1)

} else {

return upNum * 1 - 1

}

}

}

__FIND_UP_NUM(2)

诡异的问题描述: 上述函数作因传入的值为2 因此会进入递归再次调用自己本身 通过调试器调试当递归传入值为0的时候确实也能进入到相应判断 期待代码应该返回的值是0 但是实际返回的确实 undefined 实在想不明白 请高手帮忙看下 谢谢啦

回答

image.png

这个修改后的代码肯定是个递归,但是返回的永远是 0

function findUpNumber(i) {

if (i === 0) {

return 0;

}

return findUpNumber(i - 1);

}

          if (i != 0) {

__FIND_UP_NUM(i - 1)

}

这里需要一个 return

以上是 诡异的js递归问题 的全部内容, 来源链接: utcz.com/a/37684.html

回到顶部