var obj = {
'51' : { 'name':'name1'},
'66' : { 'name':'name2'},
'58' : { 'name':'name3'}
};
$(function() {
s = '';
$.each(obj, function(k, v) {
s += ' '+k;
});
alert(s);
});
在IE和Firefox這是51 66 58,但在Opera和Chrome它在Opera,Chrome的51 58 66 爲什麼Jquery.each()排序鍵? 我能做些什麼來保持本機的秩序?問題的JSON
P.S如果數組鍵是一個字符串,導致51J 66J 58J 也許歌劇和鉻嘗試鍵轉換爲整數,其中有可能
var obj = {
"51j" : { "name":"name1"},
"66j" : { "name":"name2"},
"58j" : { "name":"name3"}
};
它的對象鍵,而且他們的字符串無論發生什麼情況。 – Skilldrick 2010-08-25 09:35:16
它似乎歌劇和鉻不這麼認爲.. – ncs 2010-08-25 09:49:01
在JS中,obj [1]和obj ['1']是等價的。然而,正如已經解釋的那樣,for..in迭代的順序沒有被規範所定義。瀏覽器可以以任何順序返回值,並且仍然按照規範「正確」運行。隨着時間的推移,大多數情況下,與網絡和其他瀏覽器的兼容性都會強制執行插入順序,但這仍然不像您發現的那樣可靠。 – hallvors 2010-08-27 03:24:05