Доступ к массиву в объекте 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]); 
Другие вопросы по тегам