检查多个或条件的更短方式

时间:2011-10-28 15:07:15

标签: javascript if-statement

是否有更简单的方法可以检查一个变量值与其他几个变量值?目前我正在使用这样的代码:

if(a[i] == a[i-13] || a[i] == a[i+13] || a[i] == a[i-1] || a[i] == a[i+1]){
  //my code
}

现在,有更短的方法吗?我知道我可以使用switch,但是我必须多次编写我的函数。有没有更简单的方法呢?

3 个答案:

答案 0 :(得分:5)

您无需使用开关多次编写功能:

switch(a[i]){
  case a[i-13]:
  case a[i+13]:
  case a[i-1]:
  case a[i+1]:
    // This code will run if any of the above cases are true.
}

然而,有趣的是,这几乎是相同数量的字符(取决于你如何格式化它)。一般来说,switch语句不如显式if语句强大,但在这种情况下,我发现它更清晰,更不容易出错。

答案 1 :(得分:2)

更好的是:

if (matchesAdjacent(a, i)) {
    // etc.
}

将逻辑从主线代码移到适当命名的方法中。

这也允许你在那里进行检查(如果在其他地方没有保证)。

答案 2 :(得分:1)

没有。然而,以下看起来更整洁:

if(a[i] == a[i-13] || 
   a[i] == a[i+13] || 
   a[i] == a[i-1] || 
   a[i] == a[i+1]
) {
  //my code
}