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

在下面的示例中,我们对字符串数组进行排序,而没有向 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>

如果我们执行上述程序,它将按降序对对象的年龄属性进行排序。

输出

[{"name":"Jane","age":30},{"name":"John","age":25},{"name":"Alice","age":20}]
广告