javascript 給數組排序
給數組排序是 JavaScript 中一項常見任務,可以通過多種方法實現。
排序方法
JavaScript 提供了以下內置排序方法:
sort(): 對數組元素進行原地排序。
sort((a, b) => …): 指定比較函數的自定義排序。
sort(compareFunction): 指定比較函數的自定義排序。
使用 sort()
sort() 方法對數組元素進行原地排序。它使用 Unicode 字符串順序將元素作為字符串進行比較。
const numbers = [5, 2, 1, 3]; numbers.sort(); // [1, 2, 3, 5]
登錄后復制
使用 sort((a, b) => …)
sort() 的第二個變體允許指定一個比較函數。該函數接收兩個數組元素作為參數,并返回一個指示它們相對順序的值:
-1:a 小于 b
0:a 等于 b
1:a 大于 b
例如,以下代碼將數組按升序排序:
const numbers = [5, 2, 1, 3]; numbers.sort((a, b) => a - b); // [1, 2, 3, 5]
登錄后復制
使用 sort(compareFunction)
sort() 的第三個變體允許指定一個與 sort((a, b) => …) 類似的比較函數,但以函數的形式。
const compareFunction = (a, b) => a - b; const numbers = [5, 2, 1, 3]; numbers.sort(compareFunction); // [1, 2, 3, 5]
登錄后復制
自定義排序
比較函數可以根據需要進行定制,以執行特定的排序規則。例如,可以創建一個比較函數來按降序排序數組:
const compareFunction = (a, b) => b - a; const numbers = [5, 2, 1, 3]; numbers.sort(compareFunction); // [5, 3, 2, 1]
登錄后復制
注意
使用 sort() 時,請記住以下事項:
它會原地修改數組。
它將數組中的元素強制轉換為字符串進行比較。
比較函數的返回決定了元素的排序順序。