在Google chrome中對數組進行排序時,我無法理解下面提到的行爲。這似乎不一致。我在Internet Explorer和Mozilla Firefox上也嘗試過,看起來效果很好。任何人都可以幫助我理解並解決問題。未知/谷歌瀏覽器中數組的排序行爲不一致
編輯: 要求是根據標準對對象列表進行排序。該對象列表綁定到UI上的List視圖。對於列表中的任何兩個對象,排序條件可以相同。當對象相等,並且在列表上應用排序時,列表順序的行爲不一致。下面是重現此行爲的一段代碼。
--Creating the array
x=[{Name:'h1', value: 1},{Name:'h2', value: 1},{Name:'h3', value: 1},{Name:'h4', value: 1},{Name:'h5', value: 1},{Name:'h6', value: 1},{Name:'h7', value: 1},{Name:'h8', value: 1},{Name:'h9', value: 1},{Name:'h10', value: 1},{Name:'h11', value: 1},{Name:'h12', value: 1},{Name:'h13', value: 1}]
--Sort the array
x.sort(function (a, b) {a = a.value;b = b.value;if (a < b)return -1;if (a > b) return 1; return 0;})
--Results in order,
--h7, h1, h3, h4, h5, h6, h2, h8, h9, h10, h11, h12, h13
--Sort the array again
x.sort(function (a, b) {a = a.value;b = b.value;if (a < b)return -1;if (a > b) return 1; return 0;})
--Results in order,
--h2, h7, h3, h4, h5, h6, h1, h8, h9, h10, h11, h12, h13
你有一個對象數組,所以你需要實現你自己的排序算法。 'sort()'被設計用於基類型(字符串,int等) –
我試圖使用x.sort(函數(a,b){return 0;}),定義如何比較對象。我仍然得到相同的結果? – neo
你試圖達到什麼樣的順序? –