使用JavaScript或jQuery编写以下内容是否有简短的方法?
if (this.id==="a" || this.id==="b" || this.id==="c" || this.id==="d")
答案 0 :(得分:6)
这个怎么样?
if ( this.id in { "a":1, "b":1, "c":1, "d":1 } ) {
...
}
......还是这个?
if("abcd".indexOf(this.id) > -1) {
...
}
答案 1 :(得分:5)
if ( ['a','b','c','d'].indexOf( this.id ) >= 0 ) { ... }
或
if ( this.id in {'a':0,'b':0,'c':0,'d':0} ) { ... }
答案 2 :(得分:2)
一种可能性是切换声明。
switch(this.id){case"a":case"b":case"c":case"d":
//do something
}
答案 3 :(得分:1)
您可以尝试以下代码。特别是当你有超过四个测试值时。
if (/^[abcdef]$/.test(this.id)) {
...
}
答案 4 :(得分:0)
内联匿名哈希(d in o
)性能在tests as originally written中被误传,因为哈希在测试中不是内联的。
奇怪的是,与预定义的散列情况相比,真正的内联散列情况在Firefox 4中慢得多,但在Chrome 12中快了50%。
但更重要的一点是d in o
错过了哈希的重点 - 你不必迭代来查找事物。
两行,但仍然很短,by far the fastest:
var o = {a:1,b:1,c:1,d:1};
if(o[this.id]){...}