使用javascript检查obj中的属性

Wag*_*ira 0 javascript

所以我试图使用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语句

Kod*_*odz 7

那么有一种方法可以使用开关接近您当前使用它的方式.您使用布尔语句作为开关,如下所示:

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会在任何真实陈述的第一次出现时中断.在这种情况下,它将在第一种情况下中断,它将永远不会进入第二种情况,即使它也等于真.

最后总是使用默认情况来捕获任何没有任何真实情况的对象.