我正在编写一个程序,它本质上存储了一系列的场景。这些场景需要以随机顺序一次提取一个,并且只提取一次。我使用Fisher-Yates混洗来混洗数组,但我很好奇用来存储每个场景的各个方面的最佳方法。目前,我使用的是数字,只是计算每个数字对应的场景。(例如,如果是牌,将为每一套牌分配一个从0到3的数字,数组中的牌的编号将是它的卡号(1-13) + (13 *套牌))。
我不认为这是一个非常好的选择,我希望通过使用多维数组来存储数据或使用对象数组来交换它。哪一个更好/更有效率?
发布于 2012-01-20 23:38:12
JavaScript数组aren't really arrays在传统意义上是一个连续的内存块,您可以使用数值索引将其索引到其中,该索引将乘以条目的大小;它们只是围绕一类属性名称(全是数字的名称,例如“索引”)和length属性(加上它们有Array.prototype支持,因此数组实例具有slice之类的东西)具有一些特殊行为的对象。(有关详细信息,请参阅上面链接的文章或规范的Section 15.4。)
因此,如果不需要对数组“索引”进行特殊处理,只需使用对象即可。
https://stackoverflow.com/questions/8943841
复制相似问题