我有以下对象:
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不是正确访问对象的方法。我想知道是否有人可以通过循环建议一种方法来访问这个对象的值。
谢谢!
答案 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]);