13

我的 myData 映射如下

 var myData =  new Object();

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

但是现在当我遍历 myData 时,我在 chrome 中没有得到相同的序列,而 IE 在 Firefox 中运行良好。它以键的升序迭代

for (var key in myData) {
  alert("key is"+key);
  }

我在警报中按升序获得输出10419,10427,10504

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

4

2 回答 2

46

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));

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

于 2018-06-14T17:27:23.660 回答
7

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

var myData = [];
myData.push({ "number": 10427, description: "Description 10427" });
于 2013-07-17T09:48:32.413 回答