Javascript速记检查val是否等于两个中的一个

时间:2017-08-17 14:43:50

标签: javascript

我觉得我经常遇到这个问题,直觉上应该有办法做这样的事情:

if (userType ==="admin" || userType === "superUser"){
 // do stuff
}

以更优雅的方式,像这样:

if (userType === ("admin" || "superUser")){
 // do stuff
}

显然^不起作用,因为如果第一个值解析为true,它将永远不会检查它是否是第二个(“超级用户”)。

是否有简写在JS if语句中执行此操作,您不必重复变量名称?

切换语句不计算在内! ; d

3 个答案:

答案 0 :(得分:4)

JavaScript并没有提供开箱即用的语法。

现在,您可以使用Array.includes()方法做一些足够接近的事情 如果在数组中找到该元素,则返回true 否则,如果返回false

var userTypes = ["admin", "superUser"];
if (userTypes.includes(userType)){
  // do stuff
}

或内联数组值:

if (["admin", "superUser"].includes(userType)){
  // do stuff
}

答案 1 :(得分:2)

您可以将arrayindexOf一起使用。

之类的东西
if(["superUser", "admin"].indexOf(userType) >= 0){
    //code goes here
}

答案 2 :(得分:0)

您可以使用对象进行快速检查。

if ({ admin: 1, superUser: 1 }[userType]) {
    // do something if true
}