Javascript:使用2维数组的最有效方法

时间:2015-11-08 01:54:24

标签: javascript arrays multidimensional-array

我目前正在制作平台游戏的平铺地图。

我知道在其他语言中,当你引用二维数组时,它会更快:

world[y][x]

但是,在javascript中,它有关系吗?你能做到:

world[x][y]

感谢您的时间。

1 个答案:

答案 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)。