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






