相当简单的问题,不确定我在这里失踪了什么...... 我有这样的事情:
if(this == 18 || this == 19 || this == 20 || this == 21) {
...
}
我该如何缩短它?我试过了if(this == 18 || 19 || 20...)
,但那并没有奏效。我还有大约50多个这样的价值观,所以如果可以的话我会很棒。
Thanls。
答案 0 :(得分:4)
假设适用于旧浏览器的垫片:
if( [18,19,20,21].indexOf(this) > -1) {
或者,或者:
if( "|"+[18,19,20,21].join("|")+"|".indexOf("|"+this+"|") > -1) {
答案 1 :(得分:0)
编辑:查看使用indexOf的答案 - 更清洁的IMO
假设数据不是连续数字(如果仅使用此> min&& this< max)
你可以将它们全部放入一个数组中,然后在数组上做一个foreach。 在循环内部,进行比较,如果它匹配你的逻辑然后中断。
答案 2 :(得分:0)
尝试使用数组
if ([18, 19, 20, 21].indexOf(this) >= 0) {
// ...
}
答案 3 :(得分:0)
如果它们是连续的,你可以这样做:
if(this >= 18 && this <= 21){
...
}
如果它们不是连续的,您可以使用数组indexOf
var values = [18,19,20,21];
if(values.indexOf(this) !== -1){
...
}
答案 4 :(得分:0)
如何创建数组并使用indexOf?
类似
testArray = [18,19,20,21];
if( testArray.indexOf(this) != -1){
...
}
答案 5 :(得分:0)
jQuery也有类似的功能inArray()
if(jQuery.inArray(this,[18,19,20,21])&gt; -1){...}