Javascript 如何修复此代码中的未捕获类型错误?

Javascript 如何修复此代码中的未捕获类型错误?,javascript,typeerror,Javascript,Typeerror,我不相信我可以在扩展数组的函数之前设置变量的类型,并且它是在该函数中设置的。所以,我不确定它为什么会有类型错误 因此,具有问题playercontrolled的变量在首次初始化时在整个数组中设置为false 如果我没有正确发布或违反任何礼节,我提前表示歉意,因为我已经在堆栈溢出上呆了一段时间,而且我对javascript和堆栈溢出也比较陌生。另外,要真正看到代码在做什么,您必须将其切换到全屏 我在Chrome中遇到的错误是 Uncaught TypeError: Cannot read prop

我不相信我可以在扩展数组的函数之前设置变量的类型,并且它是在该函数中设置的。所以,我不确定它为什么会有类型错误

因此,具有问题playercontrolled的变量在首次初始化时在整个数组中设置为false

如果我没有正确发布或违反任何礼节,我提前表示歉意,因为我已经在堆栈溢出上呆了一段时间,而且我对javascript和堆栈溢出也比较陌生。另外,要真正看到代码在做什么,您必须将其切换到全屏

我在Chrome中遇到的错误是

Uncaught TypeError: Cannot read property '127' of undefined
at gameTurn (main.js:76)
at endTurn (main.js:120)
at reposition (main.js:206)
at HTMLDocument.<anonymous> (main.js:233)

地牢谷

地下城谷。

驯服边境。
v0.011,希罗米德尔著。

要移动的箭头键。

问题是
短缩
太大。此代码:

      if (curTurnY < mapSizeY) {
        curTurnX = 0;
        curTurnY++;
      }

检查所有其他条件是否存在类似错误。

问题是
cy==128
,这超出了
mainArray[cx]
的长度。我认为
TypeError
的措辞让你感到困惑-问题是
mainArray[cx][cy]
被认为是
未定义的,因此,当它试图执行
mainArray[cx][cy]['playercontrolledf'+curFlr]
时,它抛出了这个错误,因为它的计算结果是
undefined['playercontrolledf'+curFlr]
。感谢您的回答,通过查看数组或映射大小,我看到了您所说的话,我到达了数据未定义的点,对吗?我感到惊讶的是,下一个if语句还没来得及结束就被它抓住了。我不认为curTurnY可以在curTurnX没有被最大化的情况下最大化。但是,有一个保护措施来防止它泛滥是有道理的。奇怪的是,当我进行更改时,错误消息变为uncaughttypeerror:cannotreadproperty'127',undefined哪个声音与相同的映射大小相关。我不确定这是同一个问题还是另一个问题。我还认为,对curTurnX执行与你建议的Y相同的操作是有意义的,但在输入后,它似乎会冻结游戏。我将继续研究这个问题,比如超过上限和类似的条件。你是否修复了所有增加和减少X和Y的地方?
      if (curTurnY < mapSizeY-1) {
        curTurnX = 0;
        curTurnY++;
      }