JavaScript Array toSorted()
定义和用法
toSorted()
方法按字母顺序对数组元素进行排序。
toSorted()
方法返回新数组。
toSorted()
方法不会覆盖原始数组。
toSorted()
方法是 sort()
方法的复制版本。
另请参阅:
排序比较函数
按字母顺序排序对字符串效果很好("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 月 |