我像这样创建了递归函数。
function countDown(count){ if(count==0){ return; } countDown(count-1) } console.log(countDown(5))
这个函数返回未定义的值,而不是从5到1的数字。我做错了什么?
eoigrqb61#
考虑您的代码:
function countDown(count){ if(count==0){ return; } countDown(count-1) }
如果名为“count”的变量等于零,则不返回任何值。因此,未定义。如果您打算打印数字5 - 1,请按如下方式更改代码:
function countDown(count){ if(count==0){ return; } console.log(count); countDown(count-1) } countDown(5);
zkure5ic2#
你必须返回一个递归函数调用
function countDown(count) { if(count==0){ return; } console.log(count); return countDown(count - 1); }
uoifb46i3#
什么都不返回,所以很明显它是未定义的。
function countDown(count){ if(count==0){ // you should return a value if you want value instead of undefined return 100; } countDown(count-1) } console.log(countDown(5))
mnowg1ta4#
您不需要在函数内部打印。
function countDown(count) { if (!count) return; console.log(count); countDown(count - 1); } countDown(5);
11dmarpk5#
基本上,你并不是从这个函数返回一个值,它只是在每次迭代中得到一个未定义的返回值缺省情况下,任何普通函数(同步)都将返回undefined或类型为voidhttps://www.geeksforgeeks.org/what-is-void-and-when-to-use-void-type-in-javascript/在本例中,在再次调用递归函数之前,最好添加一个count变量的console.log,并且调用时不使用console.log(yourFunction)
void
count
console.log(yourFunction)
function countDown(count){ if (count === 0) return; console.log(count); // Just log it here countDown(count - 1); } countDown(5);
5条答案
按热度按时间eoigrqb61#
考虑您的代码:
如果名为“count”的变量等于零,则不返回任何值。
因此,未定义。
如果您打算打印数字5 - 1,请按如下方式更改代码:
zkure5ic2#
你必须返回一个递归函数调用
uoifb46i3#
什么都不返回,所以很明显它是未定义的。
mnowg1ta4#
您不需要在函数内部打印。
11dmarpk5#
基本上,你并不是从这个函数返回一个值,它只是在每次迭代中得到一个未定义的返回值
缺省情况下,任何普通函数(同步)都将返回undefined或类型为
void
https://www.geeksforgeeks.org/what-is-void-and-when-to-use-void-type-in-javascript/
在本例中,在再次调用递归函数之前,最好添加一个
count
变量的console.log,并且调用时不使用console.log(yourFunction)