简体   繁体   English

无法解释的返回值不确定

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM