gpt4 book ai didi

javascript - 值没有添加到数组中?

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

简单的问题对我来说似乎不可能,因为我只是盯着代码。

基本上我有这个函数,我调用它 X 次,它应该将所有创建的 div 放入一个名为 world 的数组中,该数组是我在函数外部声明的。

但是,如果我尝试使用这些值之一,它们将是“未定义”。

var world = [];


function newTile(x, y, size, rotX, rotY, rotZ, tranX, tranY, tranZ, color) {

var tile = document.createElement('div');
tile.className = "tile";
tile.style.width = size+"px";
tile.style.height = size+"px";
tile.style.webkitTransform =
"rotateX("+rotX+"deg)"+
"rotateY("+rotY+"deg)"+
"rotateZ("+rotZ+"deg)"+
"translateX("+tranX+"px)"+
"translateY("+tranY+"px)"+
"translateZ("+tranZ+"px)";
tile.style.transform =
"rotateX("+rotX+"deg)"+
"rotateY("+rotY+"deg)"+
"rotateZ("+rotZ+"deg)"+
"translateX("+tranX+"px)"+
"translateY("+tranY+"px)"+
"translateZ("+tranZ+"px)";
if (x == 0 && y == 0) {
color="rgba(255,255,0,0.5)";
pathStart = tile;
pathCur = tile;
}
tile.style.backgroundColor = color;

tile.data = {
x:x,
y:y,
blacklist:0
}

tile.onclick = function() {
worldOri(null,null,null, -this.data.x*128 - 64, null, -this.data.y*128 - 64);
};

if (debug) tile.textContent = x+", "+y;

document.getElementById('world').appendChild(tile);
world[x] = [];
world[x][y] = tile;
}

假设我做了类似的事情:

newTile(2,6,128,90,0,0,2*128,0,6*128, "rgba(255,125,0,0.5)");

这按预期工作,肯定会创建一个 div,将其放置在另一个 ID 为“world”的 div“中”,并且应该将该 div 添加到 [2][6] 处的数组“world”中。如果我现在尝试对 div 执行某些操作,例如更改颜色:

world[2][6].style.backgroundColor = "rgba(255,0,0,0.5)";

它返回未定义,我认为实际添加到“world”数组不起作用,请帮助。

最佳答案

world[x] = []; 每次调用 newTile 时都会分配一个空数组 world[x],从而从 world[x] 中“删除”所有现有的图 block 。仅当它尚不存在时才对其进行初始化:

world[x] = world[x] || [];

关于javascript - 值没有添加到数组中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20805696/

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