[英]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.