JavaScript - Array.toSorted() 方法



排序是按特定顺序(如数字或字母顺序)排列项目的过程。这提供了项的适当排列,并使得在列表或数组中搜索和查找特定项变得更加容易。

在 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}]