如何在 JavaScript 中執行數字排序?


在本教程中,我們將學習如何在 JavaScript 中執行數字排序。

我們可以透過數字排序將給定的數值按升序或降序排列。

在 JavaScript 中,我們使用 sort() 方法對數值進行排序。此方法對數字、字串和物件的陣列進行排序。它對陣列的元素進行排序並更改原始陣列元素的順序。

陣列元素被轉換為字串以確定順序,然後進行比較和排序。

arr.sort()

其中 arr 是需要排序的數字元素的陣列,此方法返回按升序排序的陣列,最小的數值排在最前面,最大的數值排在最後。

示例 1

不使用比較函式使用 sort() 方法

在給定的示例中,我們將看到使用 sort() 方法進行的數字排序。我們不使用任何比較函式。

<html> <body> <div id = "str1" > </div> <script> let my_array = [61,34,54,2,12,67,89,97,39, 87,40]; let sort_array = my_array.sort(); var output = document.getElementById("str1"); output.innerHTML += "Original Array: "+ my_array+"<br>"; output.innerHTML += "Sorted Array: " + sort_array; </script> </body> </html>

使用帶比較函式的 sort()

當我們不使用比較函式使用 Sort() 時,我們可能無法獲得準確的值。例如,在上面的示例中,Sort() 方法在“2”之前返回“12”,因為在 Unicode 順序中進行比較之前,數字會被轉換為字串。為了解決此問題,我們建立一個比較函式,該函式返回正值、零值和負值。比較函式允許我們有效地執行升序和降序排序。

當將比較函式提供給 Sort() 方法時,所有非未定義的陣列元素都將使用定義的排序順序進行排序。

Sort() 方法根據提供的可比較函式返回按升序或降序排序的陣列。例如 -

  • 如果為負值 (a>b),則 a 在 b 之前

  • 如果為零值 (a == b),則陣列沒有變化

  • 如果為正值 (a<b),則 a 在 b 之後

語法

要使用比較函式實現 sorting() 方法,請遵循以下語法 -

arr.sort(function(a, b){return a - b})

其中 arr 是要排序的陣列,比較函式定義排序順序。

引數

  • 比較函式接受兩個引數 a 和 b。

示例 2

按升序排序元素

在下面的示例中,我們使用 sort() 方法以及比較函式執行數字排序。

<html> <body> <h3> The sort() method with compare function</i> </h3> <div id="str2"> </div> <script> let my_array = [61,34,54,2,12,67,89,97,39, 87,40]; var output = document.getElementById("str2"); output.innerHTML += "Original Array : "+ my_array+"<br>"; let sort_array = my_array.sort(function(a, b){return a - b}); output.innerHTML += "Sorted Array : "+ sort_array; </script> </body> </html>

陣列按升序排序,從最小的 2 開始到最大的 97。

示例 3

按降序排序元素。

在給定的示例中,我們將使用 sort(function(a, b){return b - a}); 來輸出降序

<html> <body> <div id="str1"> </div> <script> let my_array = [61,34,54,2,12,67,89,97,39, 87,40]; var output = document.getElementById("str1"); output.innerHTML += "Original Array: " + my_array+ "<br>"; let sort_array = my_array.sort(function(a, b){return b - a}); output.innerHTML += "Sorted Array: " + sort_array; </script> </body> </html>

陣列按降序排序,從最大的 97 開始到最小的 2。

在本課中,您學習瞭如何在 JavaScript 中進行數字排序。首先,我們使用 sort() 函式對數字元件進行排序。但是,此方法涉及將陣列元素轉換為字串,然後按 URF-16 程式碼單元的順序比較字串,這會導致排序效率低下。這個問題已透過比較函式得到解決,比較函式執行升序和降序排序。

更新於: 2022 年 9 月 14 日

12K+ 次檢視

啟動您的 職業生涯

透過完成課程獲得認證

開始
廣告

© . All rights reserved.