我目前正在制作平台游戏的平铺地图。
我知道在其他语言中,当你引用二维数组时,它会更快:
world[y][x]
但是,在javascript中,它有关系吗?你能做到:
world[x][y]
感谢您的时间。
答案 0 :(得分:2)
首先,Arrays in JavaScript are just specialized objects。因此,当您有var a = ["entry"]
然后转到a[0]
时,您正在访问存储为a
的{{1}}媒体资源。由于所有属性都转换为 JavaScript 的字符串,这意味着"0"
。与创建双数组时的 C ++ 等语言不同,由于内存的创建方式,你必须转到a[0] === a["0"]
,使用 JavaScript 我们可以将对象分配给该位置(因为它只是另一个属性),以便我们可以解释我们想要的方式!
darray[y][x]
并且presto!现在,您可以转var world = [], // Start out with something empty.
X = Y = 10; // Get dims.
// Fill that sucker up!
for(var i = 0; i < X; ++i)
{
var x = [];
for(var j = 0; j < Y; ++j)
{
// Forces a place holder in the array.
x[j] = undefined;
}
world[i] = x;
}
来获取存储在这些位置的对象。就像更多信息一样,占位符用于使数组实际上也具有world[x][y]
的长度。
现在,让我们回到一个事实,即数组只是一个专门的对象。这意味着我们正在访问存储在该位置的条目中的对象Y
的属性。其中,speed of access受限于如何选择存储属性(如评论中指出的@zerms)。