我觉得我经常遇到这个问题,直觉上应该有办法做这样的事情:
if (userType ==="admin" || userType === "superUser"){
// do stuff
}
以更优雅的方式,像这样:
if (userType === ("admin" || "superUser")){
// do stuff
}
显然^不起作用,因为如果第一个值解析为true,它将永远不会检查它是否是第二个(“超级用户”)。
是否有简写在JS if语句中执行此操作,您不必重复变量名称?
切换语句不计算在内! ; d
答案 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)
您可以将array
与indexOf
一起使用。
if(["superUser", "admin"].indexOf(userType) >= 0){
//code goes here
}
答案 2 :(得分:0)
您可以使用对象进行快速检查。
if ({ admin: 1, superUser: 1 }[userType]) {
// do something if true
}