在 javascript 中保持有序地图的最快方法是什么?

Lx1*_*Lx1 5 javascript performance

我使用 javascript 对象作为地图。

假设我像这样填充它:

for (var i=0;i<100;i++) {
   var key = "A"+(i%10);
   oj[key] = i; 
}
Run Code Online (Sandbox Code Playgroud)

这将创建一个包含 10 个键的地图。100和10的值只是虚构的。可能有 10000 个事件创建 3000 个或类似的地图。

我现在想按字母顺序打印地图:

//
// First I transfer the items in an array.
// 
array = []; 
for (var i in oj) {
    array.push(i); 
}

//
// then I sort them
//
array.sort();

//
// now I can process them
// 
str = '';
for (var i=0;i<array.length;i++) {
   str+= array[i]+' '+oj[array[i]]+'\n'; 
}
Run Code Online (Sandbox Code Playgroud)

有人能建议更好的*方法吗?

*更好意味着更快!

多谢

Joh*_*her 3

由于您正在创建地图,因此您可以同时创建排序列表(按排序顺序)。这将阻止在您想要显示数组时创建数组和排序。您最终会以内存换取速度,但这在性能调优中是正常的。

如果您无法预先完成上述所有操作,请考虑在插入时进行排序。根据排序的实现,这可以节省时间。