JavaScript 数组 toSorted()
示例
// 创建一个数组
const fruits = ["Banana", "Orange", "Apple", "Mango"];
// 对数组进行排序
const fruit2 = fruits.toSorted();
自己动手试一试 »
更多示例见下文!
描述
toSorted()
方法将数组元素按字母顺序排序。
toSorted()
方法返回一个新数组。
toSorted()
方法不会覆盖原始数组。
toSorted()
方法是 sort()
方法的复制版本。
排序比较函数
按字母排序对字符串("Apple" 在 "Banana" 之前)非常有效。
但是,数字排序可能会产生不正确的结果。
"25" 比 "100" 大,因为 "2" 比 "1" 大。
你可以通过提供一个“比较函数”来解决这个问题(参见下面的示例)。
语法
数组.sort(比较函数)
参数
参数 | 描述 |
比较函数 | 可选。 定义排序顺序的函数。该函数应根据参数返回负值、零或正值。
当 sort() 比较两个值时,它会将这些值发送给比较函数,并根据返回的(负值、零、正值)对值进行排序。 示例 排序函数会将 40 排序为小于 100 的值。 当比较 40 和 100 时,sort() 调用函数(40,100)。 函数计算 40-100,并返回 -60(一个负值)。 |
返回值
类型 | 描述 |
数组 | 一个包含已排序项的新数组。 |
更多示例
降序排序
排序然后反转顺序
// 创建一个数组
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});
自己动手试一试 »
按降序排序数字
// 创建一个数组
const points = [40, 100, 1, 5, 25, 10];
// 对数组进行排序
let points2 = points.toSorted(function(a, b){return b-a});
自己动手试一试 »
查找最小值
// 创建一个数组
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];
自己动手试一试 »
浏览器支持
toSorted()
是 ES2023 的一个特性。
自 2023 年 7 月起,所有现代浏览器均支持此功能。
Chrome 110 | Edge 110 | Firefox 115 | Safari 16.4 | Opera 96 |
2023 年 2 月 | 2023 年 2 月 | 2023 年 7 月 | 2023 年 3 月 | 2023 年 5 月 |