Доступ к массиву в объекте JavaScript
У меня есть следующий объект:
myObject: {
myArray1: [1,2,3],
myArray2: [4,5,6],
myArray3: [7,8,9]
}
Это объект, который продолжает расти в массивах (динамический массив?). Поэтому мне нужно выяснить метод доступа к нему. Я сталкивался с использованием for( var key в myObject) с чем-то вроде этого:
for (var key in myObject) {
var obj = myObject[key];
for (var prop in obj) {
//thinking that this will print the first value of the array
console.log(prop[0]);
}
}
но это не работает, это печатает неопределенное. Я знаю, что использование for не является способом для правильного доступа к объекту. Мне интересно, если кто-нибудь мог бы предложить метод для доступа к значениям этого объекта через цикл.
Спасибо!
3 ответа
Итерация объекта с for..in
все в порядке, но не массив. Потому что когда ты судишься for..in
с массивом он не получит значения массива, но индексы массива. Итак, вы должны делать что-то вроде этого
for (var key in myObject) {
var currentArray = myObject[key];
for(var i = 0; i < currentArray.length; i += 1) {
console.log(currentArray[i]);
}
}
Вы сделали ошибку во 2-м цикле. obj это массив, а prop это индекс
for (var key in myObject) {
var obj = myObject[key];
for (var prop in obj) {
//this will print the first value of the array
console.log(obj[prop]); //obj is the array and prop is the index
}
}
prop
это индекс массива, а не массив. obj
это массив. Так и должно быть:
console.log(obj[prop]);