【问题标题】:Javascript conditional syntax, condensing multiple conditionsJavascript条件语法,压缩多个条件
【发布时间】:2012-08-14 10:56:05
【问题描述】:

我有以下代码。我觉得我是多余的,但不知道如何将这些陈述浓缩成一个。

编写这样的多个条件语句的正确语法/最有效+可读方式是什么?

        if(coorx < 440 && n < 4) {
            continue;
        }

        if(coorx < 280 && n < 5) {
            continue;
        }           

        if(coorx < 180 && n < 6) {
            continue;
        }       

【问题讨论】:

  • 如果有一致的模式,您可以创建一个涵盖所有情况的表达式。

标签: javascript syntax conditional-statements


【解决方案1】:

由于无论执行哪个if 语句都会执行相同的代码,因此您可以使用Javascript OR 运算符(||)将所有这些条件压缩为一个if 条件:

if ((coorx < 440 && n < 4)  || (coorx < 280 && n < 5) || (coorx < 280 && n < 5))
    continue;

【讨论】:

  • 您可以省略这些特定条件的括号(尽管显然不是 all 条件)。
  • @nnnnnn - 也许,但我仍然认为为了便于阅读,最好保留它们。不过,我编辑了使它们看起来需要的文本。
【解决方案2】:

只需使用 OR 拆分条件。 AND 具有更高的优先级,因此以下工作:

if(coorx < 440 && n < 4 || coorx < 280 && n < 5 || coorx < 180 && n < 6) 
    continue;

【讨论】:

  • 放在括号里。也许正确地记住了优先规则,但下一个人可能不会!
【解决方案3】:

就像@jeff 说的那样,但是巧妙地使用空格,这样行长就不会失控(并且为了最容易阅读):

if (

  ( coorx < 440 && n < 4 ) ||

  ( coorx < 280 && n < 5 ) ||

  ( coorx < 180 && n < 6 )

) {

  continue;

}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-12-31
    • 2011-06-05
    • 2015-06-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多