JavaScript Array sort()

定義和用法

sort() 方法對數組的項目進行排序。

排序順序可以是按字母或數字,也可以是升序(向上)或降序(向下)。

默認情況下,sort() 方法將按字母和升序將值作為字符串進行排序。

這適用于字符串("Apple" 出現在 "Banana" 之前)。但是,如果數字按字符串排序,則 "25" 大于 "100" ,因為 "2" 大于 "1"。

正因為如此,sort() 方法在對數字進行排序時會產生不正確的結果。

您可以通過提供“比較函數”來解決此問題(請參閱下面的“參數值”)。

注釋:sort() 方法會改變原始數組。

實例

例子 1

排序數組:

var fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits.sort();

親自試一試

例子 2

按升序對數組中的數字進行排序:

var points = [40, 100, 1, 5, 25, 10];
points.sort(function(a, b){return a-b});

親自試一試

例子 3

按降序對數組中的數字進行排序:

var points = [40, 100, 1, 5, 25, 10];
points.sort(function(a, b){return b-a});

親自試一試

例子 4

獲取數組中的最小值:

var points = [40, 100, 1, 5, 25, 10];
points.sort(function(a, b){return a-b});    // 按升序對數組中的數字進行排序
// 數組中的第一項 (points[0]) 現在是最低值

親自試一試

例子 5

獲取數組中的最大值:

var points = [40, 100, 1, 5, 25, 10];
points.sort(function(a, b){return b-a});    // 按降序對數組中的數字進行排序
// 數組中的第一項 (points[0]) 現在是最高值

親自試一試

例子 6

獲取數組中的最大值:

const points = [40, 100, 1, 5, 25, 10];
// 按升序對數字進行排序:
points.sort(function(a, b){return a-b});
// points[points.length-1] = 100(最高值)

親自試一試

例子 7

按字母順序對數組進行排序,然后反轉排序項的順序(降序):

var fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits.sort();
fruits.reverse();

親自試一試

語法

array.sort(compareFunction)

參數值

參數 描述
compareFunction

可選。定義替代排序順序的函數。該函數應返回負值、零值或正值,具體取決于參數,例如:

  • function(a, b){return a-b}

sort() 方法比較兩個值時,將值發送給比較函數,根據返回的(負、零、正)值對值進行排序。

舉例:

比較 40 和 100 時,sort() 方法調用比較函數(40,100)。

該函數計算 40-100,并返回 -60(負值)。

sort 函數會將 40 排序為小于 100 的值。

技術細節

返回值: Array 對象,其中的項目已排序。
JavaScript 版本: ECMAScript 1

瀏覽器支持

所有瀏覽器都完全支持 sort() 方法:

Chrome IE Edge Firefox Safari Opera
Chrome IE Edge Firefox Safari Opera
支持 支持 支持 支持 支持 支持

相關頁面

教程:JavaScript 數組

教程:JavaScript 數組 Const

教程:JavaScript 數組方法

教程:JavaScript 排序數組

教程:JavaScript 數組迭代

手冊:JavaScript Array.reverse() 方法