所以我在创建这个二维数组时遇到了一些困难。
我已经宣布它是这样的:
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;
}
}
我可能做错了什么?这绝对是打破它的阵列。
答案 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;