检查 val 是否等于两个之一的 JavaScript 简写

Joe*_*ddy 0 javascript

我觉得我经常遇到这种情况,直觉上应该有一种方法可以做这样的事情:

if (userType ==="admin" || userType === "superUser"){
 // do stuff
}
Run Code Online (Sandbox Code Playgroud)

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

if (userType === ("admin" || "superUser")){
 // do stuff
}
Run Code Online (Sandbox Code Playgroud)

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

是否有在 JS if 语句中执行此操作而无需重复变量名称的简写?

switch 语句不算数!;D

dav*_*xxx 8

JavaScript 不提供现成的这样的语法。

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

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

或通过内联数组值:

if (["admin", "superUser"].includes(userType)){
  // do stuff
}
Run Code Online (Sandbox Code Playgroud)