什么'最合适的数据结构是什么?(使用一个有间隙的数组是否存在缺点或注意事项?)

What's the most appropriate data structure for this? (Are there disadvantages or caveats to having an Array with gaps in it?)

本文关键字:间隙 一个 数组 注意事项 缺点 存在 是否 什么 是什么 数据结构      更新时间:2023-10-20

我基本上需要一个从某些数字到其他值的字典。我将从开始

var o = /*??????*/

然后:

o[4] = foo;
o[8] = bar;

您会注意到,索引远不是按顺序排列的,尽管作为键,它们肯定是重要的。

使用数组的缺点是什么,还是应该只在对象上使用数字键?

坚持使用"普通"对象。数组意味着顺序迭代,这会给人们带来错误的想法——你不想移动、拼接或推送这个对象,它本质上是一个散列。

如果附带的数字键不代表有序序列,那么当其他人(更不用说你自己)接近代码时,你只是给了他们错误的想法。

Javascript对象是稀疏的,数组只是具有自动维护长度属性(实际上是比最大索引大一个,而不是定义的元素数量)和一些其他方法的专用对象。无论哪种方式,你都是安全的;如果需要数组的额外功能,请使用它,否则请使用对象。