如何检查对象是否有密钥?

时间:2011-07-19 12:35:06

标签: javascript

var object = [{key1:'value',key2:'value2'},{'key1:'value',key2:'value2}]

for (var key in object)
     {
      if(!object.hasOwnProperty(key)){continue;}

为什么我们会收到错误?我正在检查正确的方式。

我得到error cannot call hasOwnProperty in an Object - TypeError

3 个答案:

答案 0 :(得分:2)

object未定义。检查此修订版:

var myarr = [{key1:'value',key2:'value2'},{key1:'value',key2:'value2'}];
//renamed to myarr to avoid confusion - and removed typos from your code. 
//myarr is now an array of objects

//loop through myarr
for (var i=0;i<myarr.length;i=i+1){

 //check if the element myarr[i] is indeed an object
 if (myarr[i].constructor === Object) {

   //loop through the object myarr[i]
   for (var key in myarr[i])  {

      //notice the removal of !
      if(myarr[i].hasOwnProperty(key)){
         /* do things */
      }
   }
 }
}

答案 1 :(得分:0)

你的for循环是否正确?试试这个

for (var key in array)
{
  ...

答案 2 :(得分:0)

您尚未在for循环中定义object。上面的对象数组名为array

for (var key in array) {

}