2016-11-26 5 views
1

オブジェクトに存在するかどうかにかかわらず、変数をパラメータに渡して関数をチェックしたいと思います。オブジェクトの既存のプロパティをチェックするために3つの方法を試みましたが、まだ出力はundefinedです。誰が私が間違っているか教えてくれますか?オブジェクトに関数のパラメータに記載されているプロパティがないかどうかをチェックする方法は?

var obj=[ 
     { 
      "firstName": "James", 
      "lastName": "Bond" 

     }]; 

    function propExists(prop) 
    { 
     //I tried #1 
     if(obj.hasOwnProperty(prop)===false) 
     { 
     return "Property doesn't exist"; 
     } 
    //I tried #2 
     if(!(prop in obj)) 
     { 
     return "Property doesn't exist"; 
     } 
    //I tried #3 
     if("undefined" === typeof(obj[prop])) 
     { 
     return "Property doesn't exist"; 
     } 
    } 

    console.log(propExists("Date of birth")); 

答えて

0

それはそれ配列

var obj = { 
    "firstName": "James", 
    "lastName": "Bond" 
}; 
+0

の内側にそれが配列であるtrueまたはfalseにそれをテストする必要がいけないので、私は角括弧を削除することはできません。 –

1

あなたが実際にオブジェクトの配列を使用していますobjをから角括弧を削除します。

したがってobj[0]は、最初のオブジェクトを提供します。

また、hasOwnPropertyは、オブジェクトに指定されたプロパティがあるかどうかを示すブール値です。あなたは、具体的if 条件

var obj = [{ 
    "firstName": "James", 
    "lastName": "Bond" 

}]; 

function propExists(prop) { 
    if (obj[0].hasOwnProperty(prop)) { // will be evaluated as true/false 
    return "Propert exist"; 
    } else { 
    return "Property doesn't exist"; 

    } 

} 

console.log(propExists("Date of birth")); 

DEMO

+0

はい、私はその配列を知っています、私はobjを繰り返しましたが、私はこれでつかまっています。 –

関連する問題