在開發(fā)過程中發(fā)現(xiàn),各個瀏覽器上的Array.prototype.sort內(nèi)部算法實現(xiàn)機制不一樣,導致執(zhí)行結(jié)果有偏差。
根據(jù)stackoverflow上的問答和維基百科上的結(jié)果,可以知道 chrome 目前采用快排(QuickSort)和插入排序(InsertaionSort),而對于火狐,它采用歸并排序(MergeSort)。而IE使用快排。
另外IE的sort 需要顯示聲明返回-1, 0, 1三種比較結(jié)果才可正常工作,而Chrome, Firefox中可以直接返回true, false等。

image.png
這段代碼,在chrome中將返回:

image.png
但是在IE里數(shù)組順序并不會發(fā)現(xiàn)變化。
因此,兼容性寫法是:

image.png
確保回調(diào)函數(shù)中返回的結(jié)果是顯示的-1,0,1。
轉(zhuǎn)載
作者:SCQ000
鏈接:http://www.itdecent.cn/p/459e6d141aef
來源:簡書
簡書著作權(quán)歸作者所有,任何形式的轉(zhuǎn)載都請聯(lián)系作者獲得授權(quán)并注明出處。