有没有办法在现有密钥之前或之后将新元素插入Map?
至于Array将是:arr.splice(<POSITION>, 0, <NEW ELEMENT>);
谢谢!
答案 0 :(得分:-2)
A Map - 不像数组 - 没有“order”的语义。
它旨在最有效地存储和检索特定键的值。 (事实上,它的内部实现确实为此专门优化了一些结构/排序,“b-tree”是这里的关键字。
尽管如此,mozilla docs say:
Map对象按插入顺序迭代其元素 - for循环返回每个迭代的[key,value]数组。
更新:官方ECMA-262标准confirms this。
就我个人而言,我猜测,实现者会为入口顺序和保留一个单独的索引,以便进行最有效的单一访问。
基于此,您必须做的就是将地图视为不可变对象,并从中创建一个新对象:
我现在不是您的具体用例,但也许您的问题也可以通过sort Iteration to specific criteria在迭代时解决。