-1
我一直收到错误无法设置在create2DArray undefined属性'0'。无法访问我的数组
介意解释这里的逻辑有什么问题?我知道这是一个新人的错误,因为我还没有掌握阵列。
const ROW = 10;
const COL = 11;
const SIZE = 64;
var canvas = document.getElementById("canvas");
var surface = canvas.getContext("2d");
const image = new Image();
image.src = "box_image.png";
//creating a tile
function Box() {
this.xaxis = 0;
this.yaxis = 0;
this.img = image;
}
create2DArray();
//creating map
var map = [];
function create2DArray() {
for (var i=0; i < ROW; i++){
map[i] = [];
for (var j=0; j<COL; j++){
map[i][j] = new Box();
}
}
}
你调用'create2DArray()'** **前初始化'map'。 – Pointy
作为@Pointy的后续,这可能发生,因为你的函数正在操作一个全局变量,它应该作为参数给予,所以重写'function created2DArray(map){...}',你会合理地不再次击中它(当你这样做的时候,错误会更加明显)。如果一个函数需要操纵某个事物,那么就把它传递给它。不要相信它存在于更高的范围内。 –
你的代码基本上是'var map = undefined; create2DArray(); map = [];' – epascarello