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

如何访问javascript中其他对象中对象内部的属性,javascript,jquery,ajax,arrays,object,Javascript,Jquery,Ajax,Arrays,Object,我试图访问数组中存储的每个对象的文本属性。数组是对象内另一个属性results的值 我使用jQuery从服务器检索对象,如下所示 $.ajax({ url: "https://api.parse.com/1/classes/chats", cache: false, type: 'get', async: false, success: function(data){ console.lo

我试图访问数组中存储的每个对象的文本属性。数组是对象内另一个属性results的值

我使用jQuery从服务器检索对象,如下所示

       $.ajax({
       url: "https://api.parse.com/1/classes/chats",
       cache: false,
       type: 'get',
       async: false,
       success: function(data){
            console.log(data);
        }
       });
最后的log语句是查看我收到了什么。当然,这是我需要做的事情,但我似乎无法破解代码。所以,我有一个带有result属性和数组值的对象。数组是一个对象数组,每个对象都有自己的属性。我只是对如何得到我需要的东西有点困惑。也许是朝正确的方向轻轻推一下

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.
Object{results:Array[10]}//返回的对象
结果:Array[10]//value是一个对象数组
0:对象//对象“0”已展开。。。
创建日期:“2013-10-15T19:13:43.576Z”

目标:“uzGerloXA7” 文字:“机器人:对不起,戴夫,我不能允许你这么做。”//我需要这个! 更新日期:“2013-10-15T19:13:43.576Z” 用户名:“RoboChat” 1:Object//我需要为每个对象使用它。 2:对象 3:对象 等 9:Object//这是最后一个对象。
只需指定数组索引,后跟属性名称:

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]);
    }
}
//迭代对象数组
对于(var i=0;i
您想要什么

data.results[0].text
[]
将允许您获取数组的单个元素

将允许您获取任何对象的属性

您可能需要一个循环:

for (var i = 0; i < data.results.length; ++i) {
    console.log(data.results[i].text);
}
for(变量i=0;i
您可以进行如下迭代:

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

所有文本都存储在allText ah及其jquery moe中

我建议使用Firefox的Firebug之类的工具,它允许您设置断点并检查对象。这对学习和调试都很好,假设使用jquery,但事实上-这是一个公平的假设:)John,从问题中的信息来看,
数据
似乎只包含一个东西,一个名为
结果
的属性,它是一个对象数组。在任何情况下,您都应该说
this.text
,因为
$(this.text
将获得对jQuery的
.text()
方法的引用…jslint会抱怨没有
hasOwnProperty
检查;)为了帮助我澄清,我的想法是“results”是一个具有一个值的属性,一个具有10个对象的数组。如果它只有一个值(该值有10个属性,每个属性都有一些对应的值),那么如何在“结果”上使用括号表示法(即,为什么结果[1]不返回未定义,因为只有一个项,即数组)。你的代码运行正常,我只是想理解它。要扩展,在我的大脑中应该是data.results.array[I].text。为什么这是错误的?@keith您在日志中看到的第一条消息是,您正在记录的(数据)包含一个名为results的属性,这是一个包含十个元素的数组。当然,在处理数组之后,将索引设置为10应该更有意义。如果您更多地使用控制台,例如键入
data.results
data.results[3]
,可能会更有意义。感谢Scott的回答和反馈。当然,“results”是实际数组。我不知道我为什么不明白。我想问题在于缺乏对属性和值之间关系的理解,因为现在回顾一下,问题(和答案)其实非常简单。干杯