0

IN关于javascript中的运算符,我有一个小问题。

正如我们所知,这简化了冗余逻辑 OR

我有以下声明:

if(value==="abc" || value==="cde" || value==="efg" || ...){
 ...
}

我可以使用

if(value in { "abc":1, "cde":1, "efg":1, ... }){
  ...
}

我将其作为示例编写,但 Google Chrome 控制台出现错误:

Uncaught SyntaxError: Unexpected token : 

我的错在哪里?

4

3 回答 3

0

为了避免在您的应用程序某处Object.prototype被修改时出现错误,您应该使用:

if(({ "abc":1, "cde":1, "efg":1, ... }).hasOwnProperty(value)){
  ...
}
于 2012-08-17T09:45:07.163 回答
-1

简单地说,你可以像这样使用。

var foo = "bar";

if ( foo in { bar:1, foobar:1, foo:1 } ) {
  alert("yes")
} else {
  alert("No")
}
于 2012-08-17T09:45:05.443 回答
-1

你的编码应该是...

if(value in { abc:1, cde:1, efg:1}){
        //...
        }
于 2012-08-17T09:46:19.983 回答