javascript - 将数据存储在数组或对象中哪个更有效?

标签 javascript object multidimensional-array

我正在编写一个程序,该程序本质上存储一系列场景。这些场景需要以随机顺序一次拉出一个,且仅拉出一次。我正在使用 Fisher-Yates 洗牌来对数组进行洗牌,但我很好奇用于存储每个场景的各个方面的最佳方法。目前,我使用数字并仅计算每个数字对应的场景。 (例如,如果是纸牌,则将为每个花色分配一个从 0 到 3 的数字,并且数组中纸牌的编号将是其纸牌号 (1-13) + (13 * 花色)。

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

最佳答案

JavaScript 数组 aren't really arrays在连续内存块的经典意义上,您使用数字索引乘以条目的大小来索引;它们只是围绕一类属性名称(全是数字,例如“索引”)和 length 属性(加上它们具有 Array .prototype 支持它们,因此数组实例具有诸如 slice 之类的东西)。 (有关详细信息,请参阅上面链接的文章或规范的 Section 15.4。)

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

关于javascript - 将数据存储在数组或对象中哪个更有效?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8943841/

相关文章:

javascript - 将一维数组转换为多维数组

javascript - 遍历六边形

javascript - 每次函数调用时变量改变值

java - 跨类传递对象

c# - 创建的对象能够访问创建它的对象的成员

c++ - 从 3D 数组到 1D 数组的转换失败

javascript - HTML javascript 选择操作

javascript - 根据输入值创建一个复杂的多维数组

Python 对象状态跟踪惯用语

c# - 将分割字符串的第一个数字放入二维数组