排序是按特定顺序(如数字或字母顺序)排列项目的过程。这提供了项的适当排列,并使得在列表或数组中搜索和查找特定项变得更加容易。
在 JavaScript 中,Array.toSorted() 方法用于按特定顺序(升序或降序)对数组的元素进行排序。它将元素转换为字符串,然后比较它们的 UTF-16 代码单元值序列。
此方法接受一个可选参数:“compareFunction”,该参数定义排序顺序。如果未提供,则默认情况下,此方法将按升序排序。
语法
以下是 JavaScript Array.toSorted() 方法的语法 -
toSorted(compareFn)
参数
此方法接受一个可选参数。下面描述相同 -
- compareFn(可选)−这是一个定义排序顺序的函数。如果提供,数组将首先转换为字符串,然后根据每个字符的 Unicode 码位值进行排序。
- a −用于比较的第一个元素。
- b −用于比较的第二个元素。
返回值
此方法返回一个新数组,其中包含按升序排序的元素。
示例 1
在下面的示例中,我们使用 JavaScript Array.toSorted() 方法对数字数组进行排序。由于我们没有提供任何函数(定义排序顺序)作为参数,因此默认情况下它按升序排序。
<html>
<body>
<script>
let numbers = [4, 2, 5, 1, 3];
let result = numbers.toSorted();
document.write(result);
</script>
</body>
</html>
执行上述程序后,它返回一个新数组,其中包含按升序排序的元素。
输出
1,2,3,4,5
示例 2
在此示例中,我们通过将比较函数证明为 toSorted() 方法的参数,按降序对数字数组进行排序。
<html>
<body>
<script>
let numbers = [4, 2, 5, 1, 3];
let result = numbers.toSorted((a, b) => b - a);
document.write(result);
</script>
</body>
</html>
如果我们执行上面的程序,我们可以看到新数组包含按降序排序的元素。
输出
5,4,3,2,1
示例 3
在下面的示例中,我们对字符串数组进行排序,而无需将 compare 函数传递给 toSorted() 方法。
<html>
<body>
<script>
let fruits = ['Banana', 'Orange', 'Apple', 'Mango'];
let result = fruits.toSorted();
document.write(result);
</script>
</body>
</html>
因此,新数组包含按升序排列的字符串元素。
输出
Apple,Banana,Mango,Orange
示例 4
在这里,我们按属性降序对对象数组进行排序。
<html>
<body>
<script>
let people = [
{ name: 'John', age: 25 },
{ name: 'Jane', age: 30 },
{ name: 'Alice', age: 20 },
];
let result = people.toSorted((a, b) => b.age - a.age);
document.write(JSON.stringify(result));
</script>
</body>
</html>
如果我们执行上述程序,它会按对象的 age 属性降序对对象进行排序。
输出 [{"name":"Jane","age":30},{"name":"John","age":25},{"name":"Alice","age":20}]