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

Javascript 将数据存储在数组或对象中是否更有效?,javascript,object,multidimensional-array,Javascript,Object,Multidimensional Array,我正在编写一个程序,它基本上存储了一系列场景。这些场景需要以随机顺序一次拉一个,并且只拉一次。我正在使用Fisher-Yates shuffle来洗牌数组,但我很好奇如何使用最佳方法来存储每个场景的各个方面。目前,我使用的是数字,只是计算每个数字对应的场景。(例如,如果是卡片,则每个套装将分配一个数字0到3,并且阵列中的卡片编号将是其卡号(1-13)+(13*套装)) 我认为这不是一个很好的选择,我想通过使用多维数组来存储数据,或者使用对象数组来交换它。哪一个更好/更高效?JavaScript数

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

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

JavaScript数组在传统意义上是一个连续的内存块,您可以使用一个数字索引,该索引乘以一个条目的大小;它们只是对象,在一类属性名(都是数字的,例如“索引”)和
length
属性(加上它们有
Array.prototype
支持它们,因此数组实例有
slice
等)周围有一些特殊行为。(有关详细信息,请参阅上面链接的文章或本规范。)


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

除非您有数百万或数十亿个索引,否则这无关紧要。我知道,但我想知道更多数据量的答案。@jAndy:是的,现在正朝着添加真正的数组的方向发展。到目前为止,只有Firefox和Chrome(不确定Safari)。