你能缩短一个'if'语句,其中某个变量可能是多个事物

Jef*_*aal 1 javascript operators

因为我有时需要if语句

if (variable == 'one' || variable == 'two' || variable == 'three') { 
    // code
}
Run Code Online (Sandbox Code Playgroud)

我想知道你是否可以写这个更短,如:

if (variable == ('one' || 'two' || 'three')) {
    // code
}
Run Code Online (Sandbox Code Playgroud)

Jar*_*a X 5

要么 ..

if (~['one', 'two', 'three'].indexOf(variable))
Run Code Online (Sandbox Code Playgroud)

任何有很多方法去皮肤的猫

~按位NOT ...所以-1变为0,0变为-1,1变为-2,依此类推

所以...当indexOf为0或更大时,indexOf为"truthy",即找到值...

基本上它是一个我可能不会在代码中使用的快捷方式,期望被其他人阅读,因为超过一半会抓住他们的头脑并想知道代码做了什么:p

  • 但是你解释一下`~`强制是很好的 (3认同)
  • 哇鬼鬼祟祟.下次我希望我的同事恨我时,我一定会用它. (2认同)
  • [强制的好奇案例〜(按位NOT)](https://books.google.nl/books?id=NOFwBgAAQBAJ&lpg=PA75&ots=DtMt3b5JFv&dq=the-curious-case-of-the%20coercion&pg=PA78#v= onepage&q =%20coercion&F的好奇的病例的的-=假) (2认同)