3

我正在寻找一种简短的方法来写这个:

    if ( variable == 1 || variable == 2 || variable == 6)

我试过了

    if (variable == 1 || 2 || 6)

但它似乎不起作用。是否有捷径可寻?

4

4 回答 4

10

您可以通过将可能的值放入数组并使用来做到这一点Array.indexOf

if ([1,2,6].indexOf(variable) != -1)
于 2013-01-30T15:36:09.763 回答
3
if (variable in { 1: 1, 2: 2, 6: 6 }) {
   // ...
}

或者(更安全的方式):

if (({ 1: 1, 2: 2, 6: 6 }).hasOwnProperty(variable)) {
   // ...
}

或者(不是那么短,但也有效):

switch (variable) {
    case 1:
    case 2:
    case 6:
        // ...
        break;
    default:
        // else
}
于 2013-01-30T15:36:42.303 回答
0

怎么样

[1,2,6].indexOf(variable) >= 0

这在 IE<9 中不起作用,但您可以使用 polyfill。
SugarJS为 indexOf提供了一个 polyfill ,是一个很棒的库。

于 2013-01-30T15:39:11.300 回答
0

[1,2,6].includes( variable )

浏览器支持

于 2021-05-13T14:40:53.277 回答