您好我有一个“人物”对象,其中包含四个“人物”对象
[Object, Object, Object, Object]
反过来,每个这些“人”对象都包含键和值。如何在Javascript中访问这些值?例如,尝试访问其“名称”字段不起作用:
for(var person in data.persons) {
var nameList = nameList + person.name;
}
我是一名JS新手。谢谢!
答案 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);
编辑并检查,一切正常!