2012-06-14 59 views
1

我正在檢索使用JQuerys'$ .getJSON()的字典; 通過線路發送的數據是

{ 「0」: 「項目1」, 「82」: 「項目2」, 「1」: 「項目3」, 「4」: 「項目4」}

然後我嘗試使用循環

for (var key in data) { 
    var item = new Option(data[key], key); 
    target.options.add(item); 
} 

選擇列表結束了在錯誤的順序,因爲數值出來字典的順序是關鍵的價值,以建立一個選擇列表。換句話說,他們按以下順序出來:

0: Item1 
1: Item3 
4: Item4 
82: Item2 

我期待他們遇到電線的順序。

0: Item1 
82: Item2 
1: Item3 
4: Item4 

我該如何預防?

回答

3

對象的屬性(因爲它是真正的)沒有特定的順序。

使用陣列來代替:

[{"id":"0","name":"Item1"},{"id":"82","name":"Item2"},{"id":"1","name":"Item3"},{"id":"4","name":"Item4"}] 

for (var item in data) { 
    var opt = new Option(item.id, item.name); 
    target.options.add(opt); 
}