Javascript JS数组无法读取以计算作为索引的undefined的属性663
以下是我当前的代码: 在第36行:Javascript JS数组无法读取以计算作为索引的undefined的属性663,javascript,arrays,undefined,Javascript,Arrays,Undefined,以下是我当前的代码: 在第36行:tempX=x+k-种子分离/2给出了一个错误。如果我将tempX更改为x,k或seedseedseparation/2它会工作 代码摘录: var mapX = 1000, mapY = mapX, seedLess = 3, seedSeparation = 32, //Even number canSeed, tempX, tempY, x, y, seedNum = Math.round(((mapX + mapY) / 2) / seedLess);
tempX=x+k-种子分离/2代码>给出了一个错误。如果我将tempX
更改为x
,k
或seedseedseparation/2
它会工作
代码摘录:
var mapX = 1000,
mapY = mapX,
seedLess = 3,
seedSeparation = 32, //Even number
canSeed, tempX, tempY,
x, y, seedNum = Math.round(((mapX + mapY) / 2) / seedLess);
var map = [];
for (i = 0; i <= mapX; i++){
map[i] = [];
for (k = 0; k <= mapY; k++){
map[i][k] = 0;
}
}
x = Math.floor((Math.random()*mapX)+1);
y = Math.floor((Math.random()*mapY)+1);
for (l = 0; l <= seedSeparation; l++){
for (k = 0; k <= seedSeparation; k++){
tempX = x + k - seedSeparation / 2; //Here lies the problem
tempY = y + l - seedSeparation / 2;
if(tempX >= 0 || tempY >= 0){
if(map[tempX][tempY]){
canSeed = false;
}
}
}
}
var mapX=1000,
mapY=mapX,
无核=3,
seedSeparation=32,//偶数
canSeed,tempX,tempY,
x、 y,seedNum=Math.round((mapX+mapY)/2)/无核;
var-map=[];
对于(i=0;i看小提琴,问题不在你标记的那一行,而是在下面几行:
if(map[tempX][tempY]){
这意味着map
中没有输入tempX
中的值,因此map[tempX]
将给您提供值undefined
。然后您尝试(实际上)执行undefined[tempY]
,该操作失败,因为您无法从undefined
读取属性值
您可以重写它以防止这种可能性:
if(map[tempX] && map[tempX][tempY]){