gpt4 book ai didi

javascript - 无法在二维数组中设置未定义的属性 '0'

转载 作者:行者123 更新时间:2023-12-02 05:48:54 25 4
gpt4 key购买 nike

我知道这个问题已经被问过很多次了,但是我该如何解决这个问题呢?

我有一个 map[][] 数组(包含游戏的图 block ID),我需要将它复制到 pathmap[][] 数组(仅包含 0 和 1,它是一个路径图),但是当我这样做..

function updatepathmap(){
pathmap = [];
var upm_x = 0;
while (upm_x < map.length){
var upm_y = 0;
while (upm_y < map[upm_x].length){
pathmap[][]
if (canPassthrough(map[upm_x][upm_y])) {

pathmap[upm_x][upm_y] = 1;

} else {
console.log(upm_x);
console.log(upm_y);
pathmap[upm_x][upm_y] = 0;

}
upm_y++;
}
upm_x++;
}
console.log(map);
console.log(pathmap);
}

..它给了我 Cannot set property '0' of undefined typeerror at line pathmap[upm_x][upm_y] = 0;

最佳答案

尽管有 foo[0][0] 语法糖,但实际上并不存在多维数组。您只是在其他数组中有数组。一个后果是您不能在同一表达式中构建数组:

> var foo = [];
undefined
> foo[0][0] = true;
TypeError: Cannot set property '0' of undefined

您需要先创建父数组:

> var foo = [];
undefined
> foo[0] = [];
[]
> foo[0][0] = true;
true

你可以用通常的技术判断它是否存在,例如:

> var foo = [];
undefined
> typeof foo[0]==="undefined"
true
> foo[0] = true;
true
> typeof foo[0]==="undefined"
false

关于javascript - 无法在二维数组中设置未定义的属性 '0',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32947588/

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