繁体   English   中英

缩短条件语句?

[英]Shorten Conditional Statement?

很简单的问题,不确定我在这里缺少什么...我有这样的东西:

if(this == 18 || this == 19 || this == 20 || this == 21) { 
    ...
}

如何缩短呢? 我已经尝试过if(this == 18 || 19 || 20...)但是没有用。 我还有大约50种这些价值要去,所以如果可以的话,那将是很棒的。

谢谢。

假设适用于较旧浏览器的填充程序:

if( [18,19,20,21].indexOf(this) > -1) {

或者,或者:

if( "|"+[18,19,20,21].join("|")+"|".indexOf("|"+this+"|") > -1) {

编辑:请参阅使用indexOf的答案-更干净的IMO

假设数据不是序号(如果仅使用this> min && this <max)

您可以将它们全部放入一个数组中,然后在该数组上进行一次foreach。 在循环内部,进行比较,如果匹配则执行您的逻辑然后中断。

尝试使用数组

if ([18, 19, 20, 21].indexOf(this) >= 0) {
     // ...
}

如果它们是顺序的,则可以执行以下操作:

if(this >= 18 && this <= 21){
  ...
}

如果它们不是顺序的,则可以使用数组和indexOf

var values = [18,19,20,21];
if(values.indexOf(this) !== -1){
  ...
}

如何创建数组并使用indexOf?

就像是

testArray = [18,19,20,21];
if( testArray.indexOf(this) != -1){
    ...
}

jQuery也具有类似的功能inArray ()

if(jQuery.inArray(this,[18,19,20,21])> -1){...}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM