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 に答える