JavaScript - TypedArray 的 toSorted() 方法



JavaScript TypedArray 的 toSorted() 方法是 sort() 方法的复制版本。它将 TypedArray 元素按升序排序并返回一个新的 TypedArray。它接受一个可选参数。

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

语法

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

toSorted(compareFn)

参数

此方法接受一个名为“compareFn”的参数,其描述如下:

compareFn − 定义 TypedArray 元素排序顺序的函数。

此函数还接受两个名为 'a' 和 'b' 的参数。以下是每个参数的描述:

  • a − 比较的第一个值。

  • b − 比较的第二个值。

返回值

此方法返回一个新的 TypedArray,其元素按升序排序。

示例

示例 1

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

在下面的示例中,我们使用 JavaScript TypedArray 的 toSorted() 方法创建一个新的 TypedArray,其元素按升序排序。我们使用此 TypedArray 的一个实例:[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>

输出

上述程序返回排序后的 TypedArray 为:

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 函数定义的排序顺序对 TypedArray 元素进行排序。

以下是 JavaScript TypedArray toSorted() 方法的另一个示例。我们创建一个名为 descOrder() 的函数,该函数定义元素的降序排序顺序,然后我们将此函数作为参数传递,以创建一个新的 TypedArray,其元素按降序排序,使用此 TypedArray 的实例[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>

输出

执行上述程序后,它将返回一个新的 TypedArray,其元素按降序排列为:

Typed array: 15,10,20,10,5,12,4
Sorted(in descending order) typed array: 20,15,12,10,10,5,4
广告
© . All rights reserved.