如何在 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()` 方法返回 "12" 在 "2" 之前,因為數字在 Unicode 順序中被轉換為字串後再進行比較。為了解決這個問題,我們建立了一個比較函式,該函式返回正值、零值和負值。比較函式允許我們有效地執行升序和降序排序。
當向 `sort()` 方法提供比較函式時,所有非未定義的陣列元素都將使用定義的排序順序進行排序。
`sort()` 方法根據提供的比較函式返回升序或降序排序的陣列。例如:
如果為負值 (a > b),則 a 位於 b 之前
如果為零值 (a == b),則陣列沒有變化
如果為正值 (a < b),則 a 位於 b 之後
語法
要使用比較函式實現 `sort()` 方法,請遵循以下語法:
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 程式碼單元的順序比較字串,這導致排序效率低下。這個問題已透過比較函式得到解決,該函式執行升序和降序排序。
資料結構
網路
關係資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP