gpt4 book ai didi

javascript - JavaScript 中看似随机的 TypeError

转载 作者:行者123 更新时间:2023-12-04 08:23:26 25 4
gpt4 key购买 nike

目前,我正在开发一个可以在网站上运行的小型迷你游戏,但我很早就设法遇到了一个相当奇怪的 TypeError。这是我目前正在使用的代码:

level0 = [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], 
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0]];

let character = {
x: 0,
y: 0,
}

function setBoard(array2d) {
let i;
let m = 0;
for(i = 0; i < (array2d.length * 10); i++) {
if (m == 6) {
break;
};
let z = document.getElementById(`${String(m)}-${i}`).classList;
// let z1 = `${m}-${i} is ${z}`;
// console.log(z1);
if (z == "noselect wall") {
array2d[m][i] = 1;
} else if (z == "noselect gameboard character") {
array2d[m][i] = 2;
character.x = i;
character.y = m;
document.getElementById(`${String(m)}-${i}`).innerHTML = "YOU";
} else if (z == "noselect gameboard goal") {
array2d[m][i] = 3;
document.getElementById(`${String(m)}-${i}`).innerHTML = "GOAL";
}

if (i == 9) {
m++;
i = -1
}
}
}
setBoard(level0);
console.log(character);
console.log(level0[character.x + 1][character.y]);

function moveRight(array2d) {
if (array2d[character.x + 1][character.y] == 0) {
character.x++;
console.log(character);
}
}
这是错误: Uncaught TypeError: Cannot read property '3' of undefined at script.js:43我已经检查过这些属性是否以数字形式存储,并且它们似乎以数字形式记录。我还确保这完全是 JavaScript 问题,因为在整个过程中,似乎没有任何 HTML 运行不正确。有什么我想念的吗?任何帮助将不胜感激!

最佳答案

如您所见,索引 m 表示外部索引,i 表示内部索引array2d[m][i] = 2; character.x = i; character.y = m;然而,这个 console.log 语句使用 i(character.x) 作为外部,这将超过 6 使其未定义console.log(level0[character.x + 1][character.y]);那么 undefined[m] 将是未捕获的类型错误

关于javascript - JavaScript 中看似随机的 TypeError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65387677/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com