将数据存储在数组或对象中是否更有效?

时间:2012-01-20 15:34:21

标签: javascript object multidimensional-array

我正在编写一个基本上存储一系列场景的程序。这些场景需要一次一个地拉出,并且只能以随机顺序拉出一次。我正在使用Fisher-Yates shuffle对阵列进行洗牌,但我很好奇用于存储每个场景的各个方面的最佳方法。目前,我正在使用数字,只计算哪个场景对应于每个数字。 (例如,如果它是卡片,则每个套装将被分配一个零到3的数字,并且阵列中的卡片编号将是它的卡片编号(1-13)+(13 *套装)。

我不认为这是一个非常好的选择,我想通过使用多维数组来存储数据或对象数组来交换它。哪个更好/更有效?

1 个答案:

答案 0 :(得分:2)

JavaScript数组aren't really arrays在经典意义上的连续内存块中,您使用数字索引进行索引,该数字索引乘以条目的大小;它们只是在一类属性名称(所有数字都是数字 - 例如“索引”)和length属性(以及它们都有Array.prototype支持它们时有一些特殊行为的对象,所以数组实例有像slice之类的东西。 (有关详细信息,请参阅上面链接的文章或规范的Section 15.4。)

因此,如果您不需要围绕数组“索引”进行特殊处理,只需使用一个对象。