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
廣告