JavaScript - Array sort() 方法



JavaScript 的 Array.sort() 函式用於對陣列元素進行排序。預設情況下,此方法將陣列元素轉換為字串,然後根據其 UTF-16 程式碼單元值對其進行排序。

此方法接受單個引數:“compareFunction”,它會覆蓋預設的排序行為。比較函式用於確定元素的排序順序(可以是升序或降序)。

如果要對陣列中的元素進行排序而不修改原始陣列,請使用 JavaScript Array.toSorted() 方法。

語法

以下是 JavaScript Array sort() 方法的語法:

array.sort(CompareFunction);

引數

此方法只接受一個引數,如下所述:

CompareFunction − 這是一個定義陣列元素排序順序的函式。此函式接受兩個引數(AB),分別表示要進行比較的陣列中的兩個元素。

  • 如果 (A – B) < 0,則為負值,則 A 優先。
  • 如果 (A – B) = 0,則不會更改任何內容。
  • 如果 (A – B) > 0,則為正值,則 B 優先。

返回值

此方法就地對陣列元素進行排序,並返回已排序的陣列。

示例

示例 1

在下面的示例中,我們沒有向 JavaScript Array sort() 函式傳遞任何引數。因此,sort() 方法將元素轉換為字串,然後比較其 UTF-16 程式碼單元序列並返回結果。

<html>
<body>
   <p id="demo"></p>
   <script>
      const array = [10, 25, 5, 20, 15];
      let result = array.sort();
      document.getElementById("demo").innerHTML = result;
   </script>
</body>
</html>

輸出

正如我們看到的輸出一樣,sort() 方法根據其 UTF-16 程式碼單元將陣列元素作為字串排序。

10,15,20,25,5

示例 2

在這裡,我們傳遞一個比較函式“(a, b) => {return a - b}”,該函式按升序對陣列元素進行排序。

<html>
<body>
   <p id="demo"></p>
   <script>
      const array = [10, 25, 5, 20, 15];
      array.sort((a,b) => {return a-b});
      document.getElementById("demo").innerHTML = array;
   </script>
</body>
</html>

程式執行後,陣列元素將按升序排序。

輸出

5,10,15,20,25

示例 3

在這裡,我們傳遞一個比較函式“(a, b) => {return b - a}”,該函式按降序對陣列元素進行排序。

<html>
<body>
   <p id="demo"></p>
   <script>
      const array = [10, 25, 5, 20, 15];
      array.sort((a,b) => {return b-a});
      document.getElementById("demo").innerHTML = array;
   </script>
</body>
</html>

程式執行後,陣列元素將按降序排序。

輸出

25,20,15,10,5

示例 4

如果陣列元素是“字串值”,則 sort() 方法將按字典順序(升序)對其進行排序。

<html>
<body>
   <p id="demo"></p>
   <script>
      const animals = ["Lion", "Cheetah", "Tiger", "Elephant", "Dinosaur"];
      let result = animals.sort();
      document.getElementById("demo").innerHTML = result;
   </script>
</body>
</html>

程式執行後,我們可以看到陣列元素按升序排序。

輸出

Cheetah,Dinosaur,Elephant,Lion,Tiger
廣告