如何在javascript中访问其他对象内的对象内的属性

时间:2013-10-15 19:40:54

标签: javascript jquery ajax arrays object

我正在尝试访问存储在数组中的每个对象的text属性。数组是对象内另一个属性result的值。

我使用jQuery从服务器检索对象,就像这样。

       $.ajax({
       url: "https://api.parse.com/1/classes/chats",
       cache: false,
       type: 'get',
       async: false,
       success: function(data){
            console.log(data);
        }
       });

最后的日志声明是看我收到的内容。当然,这是我需要做的事情,但我似乎无法破解代码。所以,我有一个带有result属性和Array值的对象。数组是一个对象数组,每个对象都有自己的属性。我对如何得到我需要的东西感到有些困惑。也许在正确的方向上轻轻推动?

Object {results: Array[10]} //object returned

results: Array[10] //value is an array of objects

0: Object           // object '0' expanded...

createdAt: "2013-10-15T19:13:43.576Z"<br><br>
objectId: "uzGerloXA7"
text: "RoboChat: I'm sorry Dave, I can't allow you to do that." // I need this!
updatedAt: "2013-10-15T19:13:43.576Z"
username: "RoboChat"

1:Object   // and I need it for each of these objects.
2:Object
3:Object
etc...
9:Object   //this is the last object.

3 个答案:

答案 0 :(得分:4)

你想要

data.results[0].text

[]将让您获得数组的单个元素

.将让您获取任何对象的属性。

你可能想要一个循环:

for (var i = 0; i < data.results.length; ++i) {
    console.log(data.results[i].text);
}

答案 1 :(得分:2)

只需指定数组索引后跟属性名称:

data.results[0].propName;

要迭代,你可以这样做:

//Iterate the array of objects
for (var i = 0; i < data.results.length; i++) {
    //Iterate over the keys of a specified object
    for (var key in data.results[i]) {
        if (data.results[i].hasOwnProperty(key))
            console.log(data.results[i][key]);
    }
}

答案 2 :(得分:1)

你可以做一些迭代,如:

   var allText = [];
    $.each(data.results,function(i,obj){
      allText.push(obj.text);
    });

并且所有文本都存储在allText啊及其jquery moe