【问题标题】:how to use ternary operator to return a definite value or a block of code如何使用三元运算符返回一个确定的值或一段代码
【发布时间】:2019-05-05 20:31:00
【问题描述】:

我在 javascript 中测试了三元运算符,看看这是否可行。如果数字为零或通过循环运行并返回阶乘,我希望函数返回 1。我不知道为什么它不起作用。请检查下面的代码。

function factorialize(num) {
return (num==0)?1: (for( i=num-1; i>0; i--){
    num*=i
    console.log(num)
  }
  return num;)
}

factorialize(5);

【问题讨论】:

  • 普通的 if 有什么问题?
  • “我不知道为什么它不工作” - 因为这个操作符期望 表达式 在那些地方作为操作数,而这只是不是表达式。您可以将其包装到 IIFE 中以使其工作(但您不应该这样做,这不是很可读。)

标签: operator-keyword ternary


【解决方案1】:

谢谢,Misorude,我使用了 IIFE,它奏效了。这是代码

function factorialize(num){
return (num==0)?1: (()=>{for( i=num-1; i>0; i--){
    num*=i
    console.log(num);
  }
  return num;})();
}
console.log(factorialize(5));

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-02-09
    • 1970-01-01
    • 2015-06-24
    • 2018-10-20
    • 1970-01-01
    • 2012-08-30
    • 2015-08-20
    相关资源
    最近更新 更多