如何在javascript Map中保留序列?

时间:2013-07-17 09:46:48

标签: javascript arrays sorting

我的myData地图如下

 var myData =  new Object();

 myData[10427] = "Description 10427";
 myData[10504] = "Description 10504";
 myData[10419] = "Description 10419";

但是现在当我迭代myData时,我在chrome中没有得到相同的sequnce并且IE在Firefox中工作正常。它按密钥

的升序迭代
for (var key in myData) {
  alert("key is"+key);
  }

我以警告的升序排列输出10419,10427,10504

我如何确保以与插入地图中的数据相同的顺序进行迭代?

2 个答案:

答案 0 :(得分:9)

ES6 Maps保留了广告订单。

set方法用于设置键值对

var myData = new Map();
myData.set(10427, "Description 10427");
myData.set(10504, "Description 10504");
myData.set(10419, "Description 10419");

使用

打印地图键和值
myData.forEach((value,key) => console.log(key, value));

这将按插入顺序打印键和值

答案 1 :(得分:7)

对象在JS中是无序的。如果订单很重要,请使用数组。

var myData = [];
myData.push({ "number": 10427, description: "Description 10427" });