JavaScript Array toSorted() 方法

Array 对象参考手册 JavaScript Array 对象

实例

按字母顺序对数组的元素进行排序:

// 排序 const sites = ["Google", "Runoob", "JYSHARE", "Taobao"]; // 反转数组 const sites2 = sites.toSorted(); document.getElementById("demo").innerHTML = sites2;

输出结果:

Google,JYSHARE,Runoob,Taobao

尝试一下 »

定义和用法

toSorted() 方法用于对数组中的元素按字母顺序进行排序。

toSorted() 方法返回一个新的数组。

toSorted() 方法不会修改原始数组。

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

排序比较函数:

  • 字符串排序(如 "Apple" 在 "Banana" 之前)通常按字母顺序工作。
  • 数字排序可能产生错误的结果,因为字符串比较会将 "25" 视为大于 "100"(因为 "2" 大于 "1")。
  • 可以通过提供一个"比较函数"来解决这个问题(见以下示例)。

浏览器支持

toSorted() 是 ES2023 的一项功能。

自 2023 年 7 月起,所有现代浏览器均支持该功能:

Chrome 110 Edge 110 Firefox 115 Safari 16.4 Opera 96
Feb 2023 Feb 2023 Jul 2023 Mar 2023 May 2023

语法

array.toSorted(compareFunction)

参数

参数 描述
compareFunction(可选)

定义排序顺序的函数。该函数应根据参数返回负值、零或正值,例如:

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

当 sort() 比较两个值时,它会将值传递给比较函数,并根据返回值(负值、零、正值)对值进行排序。

返回值

类型 描述
Array 返回一个排序后的新数组。

更多示例

降序排序:

实例

const fruits = ["Banana", "Orange", "Apple", "Mango"];
const fruits2 = fruits.toSorted();
fruits2.reverse();

查找最小值:

实例

const points = [40, 100, 1, 5, 25, 10];
let points2 = points.toSorted(function(a, b) { return a - b; });
let lowest = points2[0];

查找最大值:

实例

const points = [40, 100, 1, 5, 25, 10];
let points2 = points.toSorted(function(a, b) { return b - a; });
let highest = points2[0];

另一种查找最大值的方法:

实例


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 对象参考手册 JavaScript Array 对象