我使用javascript对象作为地图。
让我说我像这样填充它:
for (var i=0;i<100;i++) {
var key = "A"+(i%10);
oj[key] = i;
}
这将创建一个包含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';
}
有人能建议更好的方式吗?
*更好的意思更快!!!
非常感谢
答案 0 :(得分:3)
由于您正在创建地图,因此您可以同时创建排序列表(按排序顺序)。这样可以防止在您想要显示它们时创建数组和排序。你最终会以速度交换内存,但这在性能调整中是正常的。
如果您无法预先做好上述操作,请在插入时考虑排序。根据排序实施,可以节省时间。