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
我是 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