[英]Javascript: Most Efficient Way To Use 2 Dimensional Arrays
我目前正在为平台游戏制作图块地图。
我知道用其他语言,当您引用二维数组时,这样做会更快:
world[y][x]
但是,在javascript中,这有关系吗? 你可以做:
world[x][y]
谢谢你的时间。
首先, JavaScript中的数组只是专门的对象 。 所以,当你有var a = ["entry"]
然后去a[0]
您要访问的属性a
存储为"0"
。 由于所有属性都已转换为JavaScript的字符串,因此这意味着a[0] === a["0"]
。 与在创建双darray[y][x]
数组时使用C ++之类的语言不同,由于创建内存的方式,您必须使用darray[y][x]
,使用JavaScript我们可以将对象分配给该位置(因为它只是另一个属性),使得我们可以解释我们想要的方式!
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;
}
和presto! 现在,您可以转到world[x][y]
以获取存储在这些位置的对象。 与更多信息一样,占位符也用于使数组实际上也具有Y
的长度。
现在,让我们回到一个事实,即数组只是一个专门的对象。 这意味着我们要访问对象world
的属性,然后再次访问该位置存储的条目。 其中, 访问速度受选择存储属性的方式的限制(如@zerms在注释中指出)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.