JavaScript - TypedArray toSorted() 方法



JavaScript TypedArray toSorted() 方法是 sort() 方法的复制版本。它按升序对类型化数组元素进行排序,并返回一个新的类型化数组。它接受一个可选参数。

optional 参数是一个函数,它接受两个参数并定义元素的排序顺序。您可以定义自己的排序顺序。例如:如果它返回 a > b,则排序顺序将是升序。如果它返回 a < b,则排序顺序将是降序的。

语法

以下是 JavaScript TypedArray toSorted() 方法的语法 -


 toSorted(compareFn)

参数

此方法接受一个名为“compareFn”的参数,如下所述 -

  • compareFn − 定义排序顺序或类型化数组元素的函数。此函数还接受名为 'a' 和 'b' 的两个参数。以下是每个参数的描述 -
    • a − 比较的第一个值。
    • − 用于比较的第二个值。

返回值

此方法返回一个新的类型化数组,其中元素按升序排序。

示例 1

当省略 compareFn 参数时,TypedArray 实例的 toSorted() 方法默认对元素进行数字排序。

在下面的示例中,我们使用 JavaScript TypedArray toSorted() 方法创建一个新的类型化数组,其中元素按升序排序。我们以这个类型化数组的实例为例:[15, 10, 20, 10, 5, 12, 4]。


<html>
<head>
   <title>JavaScript TypedArray toSorted() Method</title>
</head>
<body>
   <script>
      const T_array = new Uint8Array( [15, 10, 20, 10, 5, 12, 4]);
      document.write("Typed array: ", T_array);
      const sorted_arr = T_array.toSorted();
      document.write("<br>Sorted(in ascending order) typed array: ", sorted_arr);
   </script>
</body>
</html>

输出

上面的程序将排序的类型化数组返回为 −

Typed array: 15,10,20,10,5,12,4
Sorted(in ascending order) typed array: 4,5,10,10,12,15,20

示例 2

如果我们将 compareFn 作为参数传递给此方法,它将根据此 compareFn 函数定义的排序顺序对类型化数组元素进行排序。

以下是 JavaScript TypedArray toSorted() 方法的另一个示例。我们创建一个名为 descOrder() 的函数来定义元素的降序排序顺序,然后将此函数作为参数传递,以创建新的类型化数组,其中元素按降序排序,采用此类型化数组 [15, 10, 20, 10, 5, 12, 4] 的实例。


<html>
<head>
   <title>JavaScript TypedArray toSorted() Method</title>
</head>
<body>
   <script>
      function desc(a, b){
         return a < b;
      }
      const T_array = new Uint8Array( [15, 10, 20, 10, 5, 12, 4]);
      document.write("Typed array: ", T_array);
      const sorted_arr = T_array.toSorted(desc);
      document.write("<br>Sorted(in descending order) typed array: ", sorted_arr);
   </script>
</body>
</html>

输出

执行上述程序后,它将返回一个新的类型化数组,其中元素按降序排列为 -

Typed array: 15,10,20,10,5,12,4
Sorted(in descending order) typed array: 20,15,12,10,10,5,4