[英]Unexplained undefined value on return
I've got an issue with an undefined value in below code that neither me nor any of my collegues can explain: 我在下面的代码中有一个未定义值的问题,我和我的任何同事都无法解释:
function reverseFactorial(num) {
function reverse(altNum, fac){
console.log(altNum + ', ' + fac);
if ((altNum / fac) === 1)
{
console.log(fac.toString() + '!');
return fac.toString() + '!';
}
else {
reverse(altNum / fac, fac + 1);
}
}
var ret = reverse(num, 1);
console.log(ret);
return ret;
}
An example input could be: reverseFactorial(120)
. 输入示例可以是: reverseFactorial(120)
。
The logs would then show this: 日志将显示以下内容:
120, 1 120 1
120, 2 120,2
60, 3 60、3
20, 4 20、4
5, 5 5、5
5! 5!
undefined 未定义
The reverse
function doesn't always return a value: the else {
case has no return statement. reverse
函数并不总是返回值: else {
case没有return语句。
You probably mean to return reverse(altNum / fac, fac + 1);
您可能打算return reverse(altNum / fac, fac + 1);
in the else
block. 在else
块中。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.