使用for循环变量访问数组

时间:2017-07-21 19:06:32

标签: javascript arrays multidimensional-array

我初始化了一个二维数组,如下所示:

var spielfeld = new Array(400);
for (var i = 0; i < spielfeld.length; i++) {
        spielfeld[i] = new Array(400);
    }
for (var i = 0; i < spielfeld.length; i++) {
    for (var f = 0; f < spielfeld[i].length; f++) {
       spielfeld[i][f] = false;
     }
}

现在我想以与我在第二部分inizialisation中所做的相同的方式迭代它并检查其内容。像:

for (var i = 0; i < spielfeld.length; i++) {
        for (var f = 0; f < spielfeld[i].length; f++) {
            nachbarn = new Array(8);
            if (spielfeld[i - 1][f - 1] == true) {
            //stuff i wanna do
            }
        }
}

但是chrome调试器给了我这个错误:Uncaught TypeError:

  

未捕获的TypeError:无法读取未定义的属性“-1”

有人可以向我解释一下吗?

2 个答案:

答案 0 :(得分:0)

spielfeld[-1]评估为undefined,访问[-1]会产生Uncaught TypeError
JS的问题在于,与Python不同,[-1]并没有被包围。

答案 1 :(得分:0)

更改您的代码:

 for (var i = 1; i <= spielfeld.length; i++) {
       for (var f = 1; f <= spielfeld[i].length; f++) {
         nachbarn = new Array(8);
          if (spielfeld[i - 1][f - 1] == true) {
           //stuff i wanna do
           }
      }
}

所以你在第一次迭代中没有调用spielfeld[-1][-1]