Javascript的对象属性据说没有顺序,但在大多数浏览器实现中,它似乎按插入顺序排序。
如果不插入/删除对象属性O(log n),他们怎么能实现这一目标?什么样的簿记/算法可以达到这个目的?
或者他们只是在属性数量很少的情况下跟踪插入顺序?
答案 0 :(得分:3)
执行此操作的一种方法是从哈希表开始,并创建指向哈希表中键值对的双向链接列表。插入项目时,将其添加到双向链接列表的尾部。删除项目时,将其从双向链接列表中删除。您可以选择完全忽略对现有键的写入或将它们视为删除后跟插入。当您需要遍历键值对时,沿着双向链表从头部移动到尾部。