Javascript: 错误 "Cannot set property '...' of undefined"

Javascript: Error "Cannot set property '...' of undefined"

我是 Javascript 的新手,我正在尝试创建一个地形生成器。在二维数组中设置某些值时出现此错误,无法设置未定义的 属性 '4.5'”,这很奇怪,因为我已经用 0 初始化了数组。 这就是给我带来麻烦的原因:

this.terrainArr[y + (size - 1) / 2][x + (size - 1) / 2] = 
(this.terrainArr[y][x] +
 this.terrainArr[y + (size - 1)][x] +
 this.terrainArr[y + (size - 1)][x + (size - 1)] +
 this.terrainArr[y][x + (size - 1)]) / 4 + 
((Math.random() * (delta + 1)) - (delta / 2));

我这样初始化数组:

this.terrainArr = [];
for(var i = 0; i < this.size; i++) {
    var column = [];
    for(var j = 0; j < this.size; j++) {
        column[j] = 0;
    }
    this.terrainArr[i] = column;
}

我一个接一个地调用函数

this.initArr();
this.calcTerrain(0, 0, this.size, 10);

有人知道这是怎么回事吗?

如果大小为偶数,y + (size - 1) / 2 将不是整数。尝试读取数组的非整数索引将 return 未定义;并尝试在 undefined 上使用索引表示法将引发错误。

例如:

myArray[2.5][4.5] // this is equivalent to undefined[4.5] which will throw