1
什麼是「的compareFunction」的排序中在JavaScript的數組的論據? 如果您發現第二個參數,它有不隨意在任何特定的順序。而第一個參數總是按照當前順序。我想知道第二個參數是如何選擇的。在JavaScript中的數組類型中,「compareFunction」的參數是什麼?
arr.sort(compareFunction)
什麼是「的compareFunction」的排序中在JavaScript的數組的論據? 如果您發現第二個參數,它有不隨意在任何特定的順序。而第一個參數總是按照當前順序。我想知道第二個參數是如何選擇的。在JavaScript中的數組類型中,「compareFunction」的參數是什麼?
arr.sort(compareFunction)
對於排序機制如何以及爲什麼要傳遞參數,您可以不做任何假設。它不在規範中,並且JavaScript運行時可以自由地以任何想要的方式實現排序。甚至不需要在所有情況下都使用相同的排序機制。
比較函數應該簡單地比較兩個元素,並返回一個數字結果。此外,適當的比較函數應該是一致的:對於任何一對元件(以任一次序),調用比較函數的結果應該反映相同的排序。函數也應該是傳遞一致的。比較函數不應對正在排序的列表進行任何更改。如果比較函數不滿足這些條件,則排序操作的結果是實現定義的(即,不能依賴任何特定的結果)。
它是(至少部分地)[在spec](http://www.ecma-international.org/ecma-262/6.0/#sec-array.prototype.sort)爲* *一些病例。 – Quentin
@Quentin我不知道我看到什麼,規定了對傳遞給函數的元素,比排序過程不應該通過'undefined'元素之外的其他模式。 – Pointy