我想這取決於它是如何實現的。我喜歡它,如果有人會回來告訴我「是的,在幾乎所有的瀏覽器中,項目的順序將會改變,只有在必要時才能滿足這種條件。」將Array.sort()保留數組的順序,在可能的情況下?
2
A
回答
7
你正在尋找的是算法是否「穩定」。據瞭解,Firefox的不是,而IE是。JavaScript標準不需要穩定的排序算法。
編輯:Firefox 3+有一個穩定的排序。請參閱http://www.hedgerwow.com/360/dhtml/js_array_stable_sort.html
1
每個瀏覽器都有不同的實現,所以不要依靠它
0
我相信它取決於s就是你在數組中排序的對象的類型。您可以爲array.sort()提供「排序函數」來確定排序特定對象的規則。例如,考慮功能:
function sortInt(a, b){
if (a < b)
return -1;
else if (a == b)
return 0;
else if (a > b)
return 1;
}
所以這顯然是人爲的,但你可以應用此相同類型的想法來即「可比」的任何對象。根據a小於,等於或大於b(恭敬地),您將始終返回-1,0或1。
你會然後說:array.sort(sortInt);
警告:
原諒我,如果語法因爲我沒有手頭上有一個例子是不完美的。我也不確定從跨瀏覽器的角度來看Array.sort()的穩定性。
編輯:固定的僞代碼片段
+0
函數sortInt(a,b){return(a> b) - (a some 2009-02-03 04:20:47
0
所有的主流瀏覽器有穩定的排序算法,並格式化(因爲有一些愚蠢的代碼在那裏),他們可以處理不一致的比較功能。
相關問題
- 1. 保留數組的順序
- 2. 在保持順序的情況下匹配唯一的組
- 3. 在不使用數組的情況下在PHP中保留下拉列表值
- 4. 在保留/不保存組順序的情況下重排大型文本文件
- 5. 如何在保留樹層次結構的情況下按字母順序排列數組?
- 6. 如何在保留父項的情況下保留外鍵的數據?
- 7. 如何在儘可能保留內存的情況下交換兩個數組的值?
- 8. 保存順序的Ruby字符串/數組組合保留順序
- 9. 在不改變排序順序的情況下對數組進行排序
- 10. 在保留HTML佈局的情況下將HTML文本內容拆分爲組
- 11. 在沒有參考的情況下保留數據
- 12. 請求之間的數據在用戶不可見的情況下保留
- 13. jQuery:保留密鑰本和模棱兩可的情況下
- 14. MySql排序的情況下,當數組
- 15. Array.Sort()不保留大小寫不敏感的比較器的元素順序
- 16. 在保持原始行順序的情況下合併兩個數據幀
- 17. 保留在Symfony2中的數組的初始順序原則findBy()
- 18. 在不改變數據順序的情況下將因子改爲整數
- 19. 排序數組項,並保留相同的要素的順序
- 20. 如何在保留在頁面上的情況下刷新ReferenceManyField?
- 21. 情況下就可能
- 22. 如何在沒有更改順序的情況下獲取數組輸出?
- 23. 保留註釋的順序
- 24. 在Postgres中做JOIN時保留數組中項目的順序
- 25. 在不可編輯的情況下在TextArea中保留插入標記
- 26. 在不需要的情況下應該保留還是放棄?
- 27. 在保留插件的情況下升級eclipse
- 28. 在保留smarty變量的情況下轉義用戶輸入
- 29. 在保留寬度的情況下切換字體系列
- 30. SVN在保留權限的情況下導出
正式「穩定」名稱的+1 – 2009-02-02 21:57:15