Reputation:
I am having a bit of trouble with a loop that reads an array:
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);
}
Where am I going wrong here?
Upvotes: 1
Views: 114
Reputation: 576
because your array only haw 1 item and its people. and people don't has id property. the people contains two item that every one has their id.
for (var i = 0; i < arrayLength; i++) {
for(var j = 0; j < myStringArray[i].length; j++)
{
console.log(myStringArray[i][j].id);
}
}
Upvotes: 0
Reputation: 326
Access id from object stored in myStringArray[0].
Here is the modified code:-
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);
}
Upvotes: 0
Reputation: 115212
You need to iterate over the inner array(people
property of the first element in the main array).
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);
}
Although you can use Array#forEach
method.
var myStringArray = [{
"people": [{
"id": "123",
"name": "name 1"
}, {
"id": "456",
"name": "name 2"
}]
}];
myStringArray[0].people.forEach(function(v) {
console.log(v.id);
});
Upvotes: 3