Javascript数组正在打破我的循环

时间:2014-06-12 23:11:13

标签: javascript arrays

所以我在创建这个二维数组时遇到了一些困难。

我已经宣布它是这样的:

 var objects = new Array(); 

然后我运行两个循环,一个在另一个循环中,并且这样做,调用值到数组,但它似乎在它运行时打破了我的整个循环(以及脚本)。

    for(var i = 0; i <= 32; i++) {
        dirtRows++;
        document.getElementById("dirtTable").innerHTML+='<div class="dr" id="dirtRow-' + i + '"></div>';
        alert(i);
        for(var ii = 0; ii < 32; ii++) {
            dirtBlocks++;
            document.getElementById("dirtRow-" + i).innerHTML+='<div class="dirt" onclick="destroyIt(' + i + ',' + ii + ')" id="dirt-' + ii + '">' + ii + '</div>';
            objects[i][ii] = 1;
        }   
    }

我可能做错了什么?这绝对是打破它的阵列。

2 个答案:

答案 0 :(得分:3)

您还没有创建内部数组。

var objects = []; // Use an array literal, not new Array()
for (var i = 0; i <= 32; i++) {
    objects[i] = []; // Create sub-array
    dirtRows++;
    document.getElementById("dirtTable").innerHTML+='<div class="dr" id="dirtRow-' + i + '"></div>';
    alert(i);
    for(var ii = 0; ii < 32; ii++) {
        dirtBlocks++;
        document.getElementById("dirtRow-" + i).innerHTML+='<div class="dirt" onclick="destroyIt(' + i + ',' + ii + ')" id="dirt-' + ii + '">' + ii + '</div>';
        objects[i][ii] = 1;
    }   
}

答案 1 :(得分:1)

您必须将objects [i]声明为数组:

objects[i] = new Array();
objects[i][ii] = 1;