2017-06-22 69 views

回答

3

對於排序機制如何以及爲什麼要傳遞參數,您可以不做任何假設。它不在規範中,並且JavaScript運行時可以自由地以任何想要的方式實現排序。甚至不需要在所有情況下都使用相同的排序機制。

比較函數應該簡單地比較兩個元素,並返回一個數字結果。此外,適當的比較函數應該是一致的:對於任何一對元件(以任一次序),調用比較函數的結果應該反映相同的排序。函數也應該是傳遞一致的。比較函數不應對正在排序的列表進行任何更改。如果比較函數不滿足這些條件,則排序操作的結果是實現定義的(即,不能依賴任何特定的結果)。

+1

它是(至少部分地)[在spec](http://www.ecma-international.org/ecma-262/6.0/#sec-array.prototype.sort)爲* *一些病例。 – Quentin

+1

@Quentin我不知道我看到什麼,規定了對傳遞給函數的元素,比排序過程不應該通過'undefined'元素之外的其他模式。 – Pointy

相關問題