Javascript数组意外地被NaN填充

Javascript数组意外地被NaN填充,javascript,html,arrays,canvas,nan,Javascript,Html,Arrays,Canvas,Nan,我目前正在制作一个小的滚动画布游戏,我正在尝试实现怪物。我为怪物保留了两个阵列,一个用于x位置,一个用于y位置。由于某些意外的原因,两个数组都填充了1152个元素,其中两个是预定义的,其他的都是“NaN” 以下是该计划的链接: (monsterMove功能在按下键时运行) var monsterx=[13,5], 怪物=[41,42]; 函数move(){ 对于(变量i=0;i

我目前正在制作一个小的滚动画布游戏,我正在尝试实现怪物。我为怪物保留了两个阵列,一个用于x位置,一个用于y位置。由于某些意外的原因,两个数组都填充了1152个元素,其中两个是预定义的,其他的都是“NaN”

以下是该计划的链接:

(monsterMove功能在按下键时运行)

var monsterx=[13,5],
怪物=[41,42];
函数move(){
对于(变量i=0;i
代码笔中JS的以下循环正在将元素0到的
monsterx
数组更新为
cGrid.length

for(var i = 0; i < cGrid.length; i++) {
    pGridx[i] += g;
    monsterx[i] += 1;
}
for(变量i=0;i
考虑到第一次
monsterx[i]
对于几乎所有这些索引都是
未定义的
,而
未定义的+1
NaN
,这就是为什么会得到一个满是
NaN
的数组,除了前两个以有效数字开头的元素

您有一个类似的循环更新
monstersy


(为了以后的参考,如果你不确定一个变量是如何更新的,第一步就是在代码中搜索该变量。这就是我所做的一切,以找到上面的问题。)

不是你所问的,但是你有没有想过将X和Y坐标存储在一起:
monsters=[{X:13,Y:41},{X:5,Y:42}
?对我来说似乎更整洁。哦,我不知道我能做到。谢谢你的帮助!我会确保每当类似的事情再次发生时,我会听从你的建议。
for(var i = 0; i < cGrid.length; i++) {
    pGridx[i] += g;
    monsterx[i] += 1;
}