访问对象javascript中的数组

时间:2014-04-16 03:21:16

标签: javascript arrays for-loop dynamic-arrays for-in-loop

我有以下对象:

myObject: {

 myArray1: [1,2,3],
 myArray2: [4,5,6],
 myArray3: [7,8,9]
}

这是一个在Arrays(动态数组?)中不断增长的对象。所以我需要找出一种方法来访问它。我遇到过使用for(myObject中的var键)的东西:

    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]);
     }
    }

但它没有工作,它打印undefined。我知道使用for in不是正确访问对象的方法。我想知道是否有人可以通过循环建议一种方法来访问这个对象的值。

谢谢!

3 个答案:

答案 0 :(得分:1)

使用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]);
    }
}

答案 1 :(得分:1)

你在第二轮中犯了一个错误。 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
 }
} 

答案 2 :(得分:1)

prop是数组的索引,它不是数组。 obj是数组。所以它应该是:

console.log(obj[prop]);