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