此JavaScript“if”语句的较短代码

时间:2011-01-31 02:06:18

标签: javascript if-statement

使用JavaScript或jQuery编写以下内容是否有简短的方法?

if (this.id==="a" || this.id==="b" || this.id==="c" || this.id==="d")

5 个答案:

答案 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]){...}