所以我试图使用switch case,但这似乎不是这样的.
我尝试着
switch (obj) {
case hasPropertyA:
console.log('hasPropertyA');
break;
case hasPropertyB:
console.log('hasPropertyB');
Run Code Online (Sandbox Code Playgroud)
我期待这会做obj.hasPropertyX,如果它收到一个真值,在任何case语句中显示控制台,但不是
有人有办法做到这一点吗?我有很多属性做检查所以我不能只使用if(obj.hasOwnProperty(prop)){},这就是为什么我在尝试切换case语句
那么有一种方法可以使用开关接近您当前使用它的方式.您使用布尔语句作为开关,如下所示:
var car = {
style: "volvo",
type: "sport"
}
function checkObjectProperties(obj) {
switch (true) {
case (obj.hasOwnProperty("style")):
console.log("has: property style")
break;
case (obj.hasOwnProperty("type")):
console.log("has property type");
}}
Run Code Online (Sandbox Code Playgroud)
请记住,虽然switch-case会在任何真实陈述的第一次出现时中断.在这种情况下,它将在第一种情况下中断,它将永远不会进入第二种情况,即使它也等于真.
最后总是使用默认情况来捕获任何没有任何真实情况的对象.