【发布时间】:2011-01-23 15:20:48
【问题描述】:
好的,我正在尝试加载二维数组并遇到了一些问题。这是我的代码:
var blockSize = 30;
var level = new Array(new Array(0, 1, 0, 1, 0, 1, 0, 1, 0, 1), new Array(1, 0, 1, 0, 1, 0, 1, 0, 1, 0));
var blockArray = new Array(1);
blockArray[0] = new Array(1);
function readLevel() {
for (var i = 0; i < level.length; i++) {
for (var j = 0; j < level[i].length; j++) {
var tempImg = new Image();
tempImg.src = "images/block.png";
blockArray[i][j] = new block(i * blockSize, j * blockSize, level[i][j], false, false, tempImg);
//throw('blockArray['+i+']'+j+'] = ' + level[i][j]);
}
}
}
这是我的错误:
Firebug's log limit has been reached. 0 entries not shown. Preferences
blockArray[i] is undefined
[Break On This Error] blockArray[i][j] = new block(i *...level[i][j], false, false, tempImg);
我该如何解决这个问题?
【问题讨论】:
-
当您编写
new Array(1)时,您是在尝试创建一个空的一元数组,还是一个包含1的一元数组?除非您想创建一个空的n-element 数组,否则没有理由使用new Array()构造函数;只需使用数组文字代替。例如,您的new Array(0, 1, 0, 1, 0, 1, 0, 1, 0, 1)呼叫将简单地变为[0, 1, 0, 1, 0, 1, 0, 1, 0, 1]。 -
更好:
var level = [[0, 1, 0, 1, 0, 1, 0, 1, 0, 1], [1, 0, 1, 0, 1, 0, 1, 0, 1, 0]];
标签: javascript