多维数组在javascript中迭代时返回几个未定义的值

时间:2018-02-26 09:34:44

标签: javascript

我有一个多维数组,它在每个子数组的最后一个值之后返回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;
&#13;
&#13;

2 个答案:

答案 0 :(得分:2)

从第二个循环的条件中删除=部分。您尝试访问数组范围之外的元素。同时使用var, letconst声明您的变量 - 例如ij

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