2011-12-27 72 views
4

當我按照一組數組值排序時,它在Safari,Chrome和Firefox中給了我3種不同的結果。爲什麼這樣的行爲?我使用sproutcore框架。我已經使用排序:它是瀏覽器特定的

Array.sort(function(a,b){return function2(parameter1,parameter2,parameter3,parameter4)}) 

function2比較我keyValuefunction2又調用另一個比較函數來比較記錄的值。該函數返回1,基於-10

record1.localeComapre(record2) 
+0

您將不得不包含您的實際比較函數和一組說明問題的示例數據(理想情況下在工作jsFiddle中),以便我們能夠提供任何特定的內容。 – jfriend00 2011-12-27 08:40:45

+0

謝謝。我將從瀏覽器 – Gopeenathan 2011-12-27 11:28:44

回答

2

你怎麼知道你得到不同的結果?

其他人的經驗表明localeCompare的行爲偏離瀏覽器。例如,請參閱http://blog.schmichael.com/2008/07/14/javascript-collation-fail/以及http://code.google.com/p/v8/issues/detail?id=459

沒有詳細瞭解您的比較器是如何工作的,現在我無法提出更多建議。之後你可以寫一個快速和骯髒的檢查,並確認這些清單是真正排序的;如果結果呈陽性,則區別可歸因於localeCompare的怪癖或排序例程的穩定性。

+0

獲取截圖,感謝您的評論。 :) – Gopeenathan 2011-12-27 11:28:16