【问题标题】:factorial function returns undefined阶乘函数返回未定义
【发布时间】:2018-10-29 04:47:14
【问题描述】:

这是一个简单的阶乘代码,我已经编写了函数,它循环给出正确的输出,但最后,它返回未定义。我不知道为什么。

function factorial(n){
    let value=1; 
    for(let i=1;i<=n;i++) {
        value = i*value; 
        console.log(value); 
    }  
}

【问题讨论】:

  • 没有return 语句,所以undefined 被返回...

标签: javascript function loops


【解决方案1】:

因为你没有从函数中返回任何东西,所以undefined 是它工作的结果。 您需要显式返回值:

function factorial(n){
  let value=1;

  for(let i=1;i<=n;i++) {
    value = i*value; 
    console.log(value); 
  } 

  return value;
}

【讨论】:

    【解决方案2】:

    您可以使用递归找到阶乘。这是实现。

        function factorial(x){
             if(x == 0)  //Exit condition
                 return 1;
             return x * factorial(x-1);  //5*4*3*2*1
        }
        
        console.log(factorial(5));

    【讨论】:

      【解决方案3】:

      这是一个很好的实现:

      const factorial = n => n > 1 ? n * factorial(--n) : 1;
      

      而你的函数没有return,所以它返回undefined

      【讨论】:

        猜你喜欢
        • 2018-10-16
        • 1970-01-01
        • 1970-01-01
        • 2019-05-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-10-22
        相关资源
        最近更新 更多