gpt4 book ai didi

javascript - for循环中的变量未定义?

转载 作者:行者123 更新时间:2023-11-28 13:41:33 32 4
gpt4 key购买 nike

运行 Update() 时,我收到一条错误消息,指出 map[x] 在“map[x][y] = rawmap[rawmapcount];”处未定义。我不确定为什么?

var currentuser;
var map = new Array(63);
for(x = 0;x < 36;x++) {
map[x] = new Array(35);
}

function Update(login) {
$.post("server.php",{update:1,login:login},function(data) {
if(data == 0) {window.location.href = "WEBSITE";}
else {
var rawdata = data.split("[BRK]");
currentuser = rawdata[0];
var rawmap = rawdata[1].split("|");
var rawmapcount = -1;
var x;
var y;
for(x = 0;x < 64;x++) {
for(y = 0;y < 36;y++) {
rawmapcount++;
map[x][y] = rawmap[rawmapcount];
}
}
}
});
}

Update(1);
//setInterval(function() {Update(0);},500);

最佳答案

您正在初始化 map 的前 36 个位置,但您正在尝试访问 64 个位置,就好像它们已全部初始化一样。

for(x = 0;x < 36;x++) { // <= Note the range!
map[x] = new Array(35);
}
. . .
for(x = 0;x < 64;x++) { // <= Note the range!
for(y = 0;y < 36;y++) {
rawmapcount++;
map[x][y] = rawmap[rawmapcount];
}
}

此外,您的 y 范围是 36,而不是 35。但是,这不会导致错误,因为 JavaScript 会自动扩展数组的范围。事实上,您可以使用以下方法初始化 map 的每个元素:

map[x] = [];

关于javascript - for循环中的变量未定义?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17535661/

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