排序字符串是將字符串按字典順序或字母順序排列。使用 JavaScript 開發應用程序時通常會對字符串數組進行排序。在本教程中,我們將學習在 JavaScript 中對字符串進行排序。
例如,如果您從 API 獲取一些數據并希望按排序順序顯示該數據,則字符串排序在這里非常有用。
在這里,我們將學習使用內置方法和各種簡單的方法對字符串進行排序。
使用sort()方法對字符串進行排序
在 JavaScript 中,sort() 是我們可以對數組使用的內置方法。一般來說,在其他編程語言中,sort()方法默認對數值進行排序。但是,JavaScript 將數字轉換為字符串并按字母順序對它們進行排序。
因此,我們可以使用 JavaScript 的 sort() 方法而不使用比較器函數來對字符串數組進行排序。
語法
用戶可以按照以下語法使用 JavaScript 的 sort() 方法對字符串進行排序。
Strings.sort();
登錄后復制
在上面的語法中,我們使用字符串數組作為引用和 sort() 方法。
示例 1
在此示例中,我們定義了字符串數組并使用一些字符串值對其進行初始化。之后,我們以數組為引用并執行數組的 sort() 方法。用戶可以觀察輸出結果,數組中的所有字符串均按字母順序排序。
<html> <body> <h2>Using the <i>sort() method</i> to sort an array of strings in JavaScript.</h2> <div id = "output"> </div> <script> let output = document.getElementById('output'); let strings = ["Hi", "JavaScript", "TypeScript", "C", "CPP", "Python", "Java", "HTML", "CSS"]; output.innerHTML += "The original string array is " + strings + "<br/>"; strings.sort(); output.innerHTML += "The sorted string array is " + strings + "<br/>"; </script> </body> </html>
登錄后復制
使用for循環對字符串進行排序(冒泡排序算法)
對字符串進行排序的簡單方法是使用 for 循環。我們可以使用兩個嵌套的 for 循環將每個字符串與所有其他字符串進行比較,并按字母順序對它們進行排序。另外,我們可以說它是一種冒泡排序算法。
語法
用戶可以按照下面的語法使用冒泡排序算法對字符串按字母順序進行排序。
for (let a = 0; a < strings.length; a++) { for (let b = a + 1; b < strings.length; b++) { if (strings[a] > strings[b]) { // swap strings at index a and index b } } }
登錄后復制
在上面的語法中,我們使用了兩個嵌套的 for 循環并迭代字符串數組。此外,我們還比較兩個字符串值,并基于此交換字符串。
算法
第 1 步 – 創建字符串數組。
第 2 步 – 使用 for 循環并從第 0 個索引開始迭代字符串數組。
步驟 3 – 在 for 循環中,使用另一個 for 循環,并開始迭代第 a+1 個索引,此時 a 是第一個 for 循環的迭代指針。
第 4 步 – 現在,比較 ath 和 bth 索引處的字符串。
步驟 5 – 如果第 ath 索引處的字符串的字母順序大于第 b 個索引處的字符串,則交換兩個字符串。
第 6 步 – 完成兩個 for 循環的所有迭代,以按排序順序獲取所有字符串。
示例2(考慮字符串字符的大小寫)
在下面的示例中,我們實現了冒泡排序算法來對字符串數組進行排序。下面的輸出向我們展示了冒泡排序算法對所有字符串進行排序,其中大寫字母在小寫字母之前,因為在字符串比較中大寫字母比小寫字母具有更高的優先級。
<html> <body> <h2>Using the <i> bubble sort algorithm </i> to sort an array of strings in JavaScript.</h2> <div id = "output"> </div> <script> let output = document.getElementById('output'); let strings = ["car", "Bike", "truck", "cycle", "Tempo", "cart", "abcd", "string"]; output.innerHTML += "The original string array is " + strings + "<br/>"; for (let a = 0; a < strings.length; a++) { for (let b = a + 1; b < strings.length; b++) { if (strings[a] > strings[b]) { let tempString = strings[a]; strings[a] = strings[b]; strings[b] = tempString; } } } output.innerHTML += "The sorted string array is " + strings + "<br/>"; </script> </body> </html>
登錄后復制
示例3(忽略字符串字符的大小寫)
在此示例中,我們實現了冒泡排序算法來對字符串進行排序,但我們比較的是小寫字符串。在上面的示例中,我們根據字母順序對字符串進行排序,并對大寫字母進行優先排序。但在這里,我們忽略字符串字符的大小寫并比較字符串。
<html> <body> <h2>Using the <i> bubble sort algorithm </i> to sort an array of strings in JavaScript.</h2> <div id = "output"> </div> <button onclick = "sortStrings()"> Sort Strings </button> <script> let output = document.getElementById('output'); let strings = ["ab", "Bc", "AB", "AC", "cd", "ds", "ds", "erere", "DS"]; output.innerHTML += "The original strings are " + strings + "<br/>"; function sortStrings() { function swap(index1, index2) { let tempString = strings[index1]; strings[index1] = strings[index2]; strings[index2] = tempString; } for (let a = 0; a < strings.length; a++) { for (let b = a + 1; b < strings.length; b++) { if (strings[a].toLowerCase() > strings[b].toLowerCase()) { swap(a, b) } } } output.innerHTML += "The sorted strings are " + strings + "<br/>"; } </script> </body> </html>
登錄后復制
我們在本教程中學習了對多個字符串進行排序。在第一種方法中,我們使用了 sort() 方法,因為它始終按字母順序對字符串進行排序。在第二種方法中,我們實現了冒泡排序算法來對字符串進行排序,但我們可以對其進行優化以提高時間效率。此外,我們可以使用其他算法(例如合并排序)來提高排序算法的時間和空間效率。
以上就是如何在 JavaScript 中對字符串進行排序?的詳細內容,更多請關注www.92cms.cn其它相關文章!