【问题标题】:single return of ternary operator三元运算符的单次返回
【发布时间】:2012-12-25 20:48:19
【问题描述】:

我想知道是否可以为单次返回编写三元运算符。我在网上尝试了谷歌,但找不到答案。还是不叫三元算子??

非常感谢您的建议。

If(A == 1) execute_function(); into A == 1 ? execute_function() //???Possible???

【问题讨论】:

  • 为什么?在我看来,三元在这里不合适。
  • 对不起,我是菜鸟,所以我们不用这种方式使用三元运算符?
  • 为什么不只是 execute_function(exists); ?
  • 同样的逻辑,execute_function(A == 1);
  • @Till 您可以考虑将三元运算作为 if-then-else 的替代方案。所以,而不是写 if(condition) doSomething else doSomethingElse 你可以写 condition ? doSomething : doSomethingElse 在你的情况下你只有 if 条件,而 else 是空的,所以@Lloyd 写三元不适合你的情况

标签: javascript ternary-operator


【解决方案1】:

这是最短的方法。

A == 1 && execute_function();

【讨论】:

    【解决方案2】:

    是的:

    (exists == 1) ? execute_function() : false;
    

    如果存在则运行函数,否则不运行

    添加: 像下面这样做会更好:

    if( A == 1 ) {
      execute_function();
    }
    

    由于在上述情况下使用三元运算符并不是那么富有成效,因为您只检查条件的真面,而不关心假面的内容。

    【讨论】:

    • @Till yes,你也需要使用假边,你可以使用空字符串,比如'',或者0或者假
    • 遇到了完全相同的困境,发现 (statement) ? true : null; 也能正常工作
    • 我仍然认为在这种情况下三元组是不合适的,使用它并没有获得任何好处。
    • @Lloyd 是的,你是对的,已经相应地更新了我的答案
    【解决方案3】:
    condition ? (runTrue) : (runFalse);
    

    在 javascript 中可用。

    https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Operators/Conditional_Operator

    【讨论】:

      【解决方案4】:

      正如有人已经提到的,A == 1 && execute_function(); 是最短的。但是,另一种选择是使用单行 if 语句:

      if( A == 1 ) execute_function();

      【讨论】:

        猜你喜欢
        • 2016-07-09
        • 2020-10-19
        • 1970-01-01
        • 1970-01-01
        • 2020-01-25
        • 2017-03-28
        • 2014-09-24
        • 2011-04-03
        • 2018-07-24
        相关资源
        最近更新 更多