我有一个多维数组,它在每个子数组的最后一个值之后返回undefined。这是我的代码:
var bigArray = [
[1, 2, 3],
[4, 5, 6],
[7, 8, 9],
[10, 11, 12]
];
for (i = 0; i < bigArray.length; i++) {
for (j = 0; j <= bigArray[i].length; j++) {
console.log(bigArray[i][j]);
}
}
&#13;
答案 0 :(得分:2)
从第二个循环的条件中删除=
部分。您尝试访问数组范围之外的元素。同时使用var, let
或const
声明您的变量 - 例如i
和j
。
var bigArray = [
[1,2,3],
[4,5,6],
[7,8,9],
[10,11,12]
];
for(var i = 0; i < bigArray.length; i++) {
for(var j = 0; j < bigArray[i].length; j++) {
console.log(bigArray[i][j]);
}
}
&#13;
答案 1 :(得分:0)
在这种情况下,'。length'方法将返回该数组中的总数元素,但数组索引从0开始。因此,如果数组包含n个元素,则最后一个元素的数组索引将为n-1。如果您尝试访问索引为n的数组,它将返回一个ArrayIndexOutOfBound异常。 您可以尝试此代码
var bigArray = [
[1, 2, 3],
[4, 5, 6],
[7, 8, 9],
[10, 11, 12]
];
for (i = 0; i <= bigArray.length-1; i++) {
for (j = 0; j <= bigArray[i].length-1; j++) {
console.log(bigArray[i][j]);
}
}