如何在javascript中访问对象中的对象

时间:2015-03-30 16:15:21

标签: javascript

您好我有一个“人物”对象,其中包含四个“人物”对象

[Object, Object, Object, Object]

反过来,每个这些“人”对象都包含键和值。如何在Javascript中访问这些值?例如,尝试访问其“名称”字段不起作用:

for(var person in data.persons) {

    var nameList = nameList + person.name; 
}

我是一名JS新手。谢谢!

3 个答案:

答案 0 :(得分:2)

由于您的persons对象实际上是Array,您可以使用简单的for访问它,但使用索引变量进行迭代,如下所示:

var nameList = '';
for (var i=0, person; person = data.persons[i]; i++) {
    nameList += person.name;
}

或最终,像这样:

var nameList = '';
for (var i=0; i < data.persons.length; i++) {
    nameList += data.persons[i].name;
}

您正在做的是迭代索引,因此您的person变量包含索引号,而不是人物对象:

for(var person in data.persons) {
    // person will be 0, 1, 2, 3...
    // by the way you can still do:
    nameList += data.persons[person].name;
}

答案 1 :(得分:1)

您不能对数组使用for-in循环。使用for循环代替计数器。

for (var i = 0; i < data.persons.length; i++) {
    var person = data.persons[i];
    var nameList = nameList + person.name; 
}

答案 2 :(得分:1)

是的,因为你的语法?试试并显示你的输出:

var nameList = '';
var test = {name: 'Joe'};
var persons = [test, test];
persons.forEach(function(v, i){
  console.log(v.name);
  console.log("index = " + i);
  nameList = nameList + v.name; 
});
console.log(nameList);

编辑并检查,一切正常!