Javascript Can';t使用变量访问数组值

Javascript Can';t使用变量访问数组值,javascript,Javascript,我在使用图书馆时遇到了一个我以前从未遇到过的问题。我有一个名为neights的函数,它的构造函数是neights(x,y)。我在每个循环中多次调用该函数(2500次)。如果我使用此代码: if(x < 50){ if(spots[1][1]){ neighborCount++; } } 但这只是将错误更改为 TypeError:spots[parseInt(…)]未定义 我希望我把我的问题解释得足够好,你也能理解。如果我忘了什么,请告诉我,我会尽快添加它

我在使用图书馆时遇到了一个我以前从未遇到过的问题。我有一个名为neights的函数,它的构造函数是neights(x,y)。我在每个循环中多次调用该函数(2500次)。如果我使用此代码:

if(x < 50){
    if(spots[1][1]){
        neighborCount++;
    }
}
但这只是将错误更改为

TypeError:spots[parseInt(…)]未定义

我希望我把我的问题解释得足够好,你也能理解。如果我忘了什么,请告诉我,我会尽快添加它

提前谢谢

FritzFurtz试试这个

if(x < 50){
    if(spots[parseInt(x,10)+1][1]){
        neighborCount = 3;
    }
}
if(x<50){
if(spots[parseInt(x,10)+1][1]){
邻里数=3;
}
}

我犯了一个典型的错误:0在数组中建立索引。if(x<50)应该检查它是否未索引,因为数组大小是50。但是我忘记了最后一个值是索引49,所以我必须检查(x<49)。谢谢你们总是快速回答

什么是
x
?为什么要对看起来是数字的东西使用
parseInt
?什么是
spot
?它包含那么多项目吗?我认为小于x+1x的点长度是一个介于0和49之间的数字。哦,我想我刚刚发现了我的错误。我检查x是否小于50,但它总是小于50。现在让我检查一下。哦,是的。数组0索引。。。感谢您提出的问题,这总是有帮助的:)但是当x=49=>x+1=50时,x+1超出范围类型错误:spots[(parseInt(…)+1)]未定义。谢谢你的快速回答:)我不明白。我访问x+1。如果我这样做,我必须检查x+1是否未定义,为此我做了一个If(x<50),因为数组大小是50。但是由于数组是0索引的,所以我必须做一个if(x<49),以便x+1可以最大为49
spots[parseInt(x+1)][1]
if(x < 50){
    if(spots[parseInt(x,10)+1][1]){
        neighborCount = 3;
    }
}