Javascript数组循环变量未定义
问题描述:
我有一点麻烦的循环读取数组:Javascript数组循环变量未定义
var myStringArray = [{
"people": [{
"id": "123",
"name": "name 1"
}, {
"id": "456",
"name": "name 2"
}]
}];
var arrayLength = myStringArray.length;
for (var i = 0; i < arrayLength; i++) {
console.log(myStringArray[i].id);
}
我要去哪里错了吗?
答
您需要遍历内部数组(第一个元素在主数组中的people
属性)。
var myStringArray = [{
"people": [{
"id": "123",
"name": "name 1"
}, {
"id": "456",
"name": "name 2"
}]
}];
var arrayLength = myStringArray[0].people.length;
for (var i = 0; i < arrayLength; i++) {
console.log(myStringArray[0].people[i].id);
}
虽然可以使用Array#forEach
方法。从对象
var myStringArray = [{
"people": [{
"id": "123",
"name": "name 1"
}, {
"id": "456",
"name": "name 2"
}]
}];
myStringArray[0].people.forEach(function(v) {
console.log(v.id);
});
答
访问ID存储在myStringArray [0]。
下面是修改代码: -
var myStringArray = [
{
"people":[
{"id":"123","name":"name 1"},
{"id":"456","name":"name 2"}
]
}
];
var array = myStringArray[0].people,
arrayLength = array.length;
for (var i = 0; i < arrayLength; i++) {
console.log(array[i].id);
}
答
,因为你只有数组山楂1项和它的人民。 和人没有id属性。人民包含两个项目,每个人都有自己的ID。
for (var i = 0; i < arrayLength; i++) {
for(var j = 0; j < myStringArray[i].length; j++)
{
console.log(myStringArray[i][j].id);
}
}
你不够深刻......'myStringArray [0] .people [i] .id'。 ;) – evolutionxbox
和'var arrayLength = myStringArray [0] .people.length'; – taguenizy