JavaScript Array toSorted()

定義和用法

toSorted() 方法按字母順序對數組元素進行排序。

toSorted() 方法返回新數組。

toSorted() 方法不會覆蓋原始數組。

toSorted() 方法是 sort() 方法的復制版本。

另請參閱:

Array sort() 方法

Array reverse() 方法

排序比較函數

按字母順序排序對字符串效果很好("Apple" 排在 "Banana" 之前)。

但是,對數字排序可能會產生不正確的結果。

"25" 比 "100" 大,因為 "2" 比 "1" 大。

可以通過提供“比較函數”來解決此問題(見下面的例子)。

實例

例子 1

// 創建一個數組
const fruits = ["Banana", "Orange", "Apple", "Mango"];
// 對數組進行排序
const fruits2 = fruits.toSorted();

親自試一試

例子 2

排序后反轉順序:

// 創建一個數組
const fruits = ["Banana", "Orange", "Apple", "Mango"];
// 對數組進行排序
const fruits2 = fruits.toSorted();
// 反轉數組
fruits2.reverse();

親自試一試

例子 3

使用排序函數按升序排序數字:

// 創建一個數組
const points = [40, 100, 1, 5, 25, 10];
// 對數組進行排序
let points2 = points.toSorted(function(a, b){return a - b});

親自試一試

例子 4

按降序排序數字:

// 創建一個數組
const points = [40, 100, 1, 5, 25, 10];
// 對數組進行排序
let points2 = points.toSorted(function(a, b){return b - a});

親自試一試

例子 5

查找最小值:

// 創建一個數組
const points = [40, 100, 1, 5, 25, 10];
// 按升序排序數字
let points2 = points.toSorted(function(a, b){return a - b});
let lowest = points2[0];

親自試一試

例子 6

查找最大值:

// 創建一個數組
const points = [40, 100, 1, 5, 25, 10];
// 按降序排序數字
let points2 = points.toSorted(function(a, b){return b - a});
let highest = points2[0];

親自試一試

例子 7

查找最大值:

// 創建一個數組
const points = [40, 100, 1, 5, 25, 10];
// 按升序排序數字
let points2 = points.toSorted(function(a, b){return a - b});
let highest = points2[points.length - 1];

親自試一試

語法

array.sort(compareFunction)

參數

參數 描述
compareFunction

可選。定義排序順序的函數。該函數應根據參數返回負值、零或正值:

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

當 sort() 比較兩個值時,它會將這些值發送給比較函數,并根據返回的(負值、零、正值)對值進行排序。

舉例:

排序函數會將 40 視為比 100 小的值。

當比較 40 和 100 時,sort() 調用函數 function(40, 100)。

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

返回值

類型 描述
Array 排序后的新數組。

瀏覽器支持

toSorted() 是 ES2023 的特性。

自 2023 年 7 月起,所有現代瀏覽器均支持該方法:

Chrome Edge Firefox Safari Opera
Chrome 110 Edge 110 Firefox 115 Safari 16.4 Opera 96
2023 年 2 月 2023 年 2 月 2023 年 7 月 2023 年 3 月 2023 年 5 月