如何遍历JavaScript对象

时间:2012-04-05 07:33:01

标签: javascript jquery

我用过

console.log(response);

并在控制台中获得以下内容(在Firebug中)。如何循环检查“LMNOPQ”是否存在?

data        [Object { name="Excel in ABCD", category="Book", id="327361517327399", more...}, Object { name="LMNOPQ", category="Product/service", id="175625882542984", more...}, Object { name="UVWXYZ", category="Book", id="260641707360118", more...}, 7 more...]
            0       Object { name="Excel in ABCD", category="Book", id="327361517327399", more...}
            category        "Book"
            created_time        "2012-04-04T05:31:04+0000"
            id      "327361517327399"
            name        "Excel in ABCD"
            1       Object { name="LMNOPQ", category="Product/service", id="175625882542984", more...}
            2       
Object { name="UVWXYZ", category="Book", id="260641707360118", more...}

然后按照Baptiste Pernet的建议,我尝试了以下内容:

for(var i in response) {
    console.log(response[i].name);//gives me undefined
    console.log(response[i]);//gives me another object (it is nested, check below)
}
  

[Object {name =“Excel in ABCD”,category =“Book”,id =“327361517327399”,   更多...},对象{name =“LMNOPQ”,category =“产品/服务”,   id =“175625882542984”,更多...},对象{name =“UVWXYZ”,   category =“Book”,id =“260641707360118”,更多...},

我现在如何获得此名称?我坚持:

console.log(response[i]);

为了获得嵌套对象的属性,我应该写什么?另一个循环?

2 个答案:

答案 0 :(得分:2)

您应该尝试使用JSON.stringify(response)然后使用this site来查看结果。它比您提供的格式更标准。

根据你提供的内容,你似乎有一个名为data的成员包含一个数组(同样,我不确定,因为你没有提供一个好的格式来描述你的javascript对象)。

让我们试试

for(var i in response.data) {
  if (response.data[i].name == 'LMOPQ') {
    return true
  }
}

return false;

答案 1 :(得分:-1)

你可以使用

for (var prop in Object) {
    if(prop == "LMNOPQ") {
        // Do something
    }
}

或者您也可以使用if( response[like].hasOwnProperty("LMNOPQ") )