Hahmojen lajittelu merkkijonossa on yleinen tehtävä ohjelmoinnissa, erityisesti web-kehityksessä. JavaScriptissä on useita tapoja lajitella merkkejä merkkijonossa. Tässä artikkelissa tutkimme joitain suosituimmista tekniikoista merkkien lajitteluun JavaScriptissä.
df loc
Merkkien lajittelu merkkijonossa Array.sort()-menetelmällä:
Helpoin tapa lajitella merkkijonon merkit JavaScriptissä on muuntaa merkkijono merkkijonoksi ja käyttää sitten Array.sort() tapa lajitella taulukko.
Esimerkki:
Seuraava koodi näyttää, kuinka merkkijonon merkit lajitellaan tällä menetelmällä:
const str = 'hello world'; const sortedStr = str.split('').sort().join(''); console.log(sortedStr);
Lähtö:
dehllloorw
Selitys:
Tässä koodissa luomme ensin merkkijonon str ja muuntaa sen sitten merkkijonoksi käyttämällä jakaa() menetelmä. Sen jälkeen käytämme sort()-menetelmä lajitellaksesi taulukon merkit nousevaan järjestykseen. Lopuksi yhdistämme lajitellun taulukon takaisin merkkijonoksi käyttämällä liittyä seuraan() menetelmä.
Huomaa, että järjestellä() menetelmä lajittelee elementit paikoilleen, mikä tarkoittaa, että se muokkaa alkuperäistä taulukkoa. Yllä olevassa esimerkissä emme säilytä alkuperäistä merkkijonoa, koska muokkaamme sitä suoraan. Jos meidän on säilytettävä alkuperäinen merkkijono, voimme tehdä siitä kopion ennen sen muuntamista taulukoksi:
Esimerkki:
const str = 'hello world'; const strCopy = str.slice(); // make a copy of the string const sortedStr = strCopy.split('').sort().join(''); console.log(sortedStr);
Lähtö:
dehllloorw
Merkkien lajittelu merkkijonossa for-silmukalla:
Toinen tapa lajitella merkkijonon merkkejä JavaScriptissä on käyttää a silmukalle . Tämä menetelmä sisältää iteroinnin merkkijonon jokaisen merkin yli, sen vertaamisen kaikkiin muihin merkkeihin ja niiden paikkojen vaihtamisen, jos ne eivät ole oikeassa järjestyksessä.
Esimerkki:
Tässä on esimerkki merkkijonon merkkien lajittelusta for-silmukan avulla:
const str = 'hello world'; let sortedStr = ''; for (let i = 0; i <str.length; i++) { for (let j="i" + 1; < str.length; j++) if (str[j] str[i]) const temp="str[i];" str[i]="str[j];" str[j]="temp;" } sortedstr console.log(sortedstr); pre> <p> <strong>Output:</strong> </p> <pre> hello world </pre> <p> <strong>Explanation:</strong> </p> <p>In this code, we first initialize an empty string called <strong> <em>sortedStr</em> </strong> . After that, we use two nested <strong> <em>for loops</em> </strong> to compare each character with every other character in the string. If a character is not in the correct order, we swap it with the character that comes after it.</p> <p>After the <strong> <em>inner loop completes</em> </strong> , we add the current character to the <strong> <em>sortedStr</em> </strong> string. We continue this process until all characters have been sorted. This method may be less efficient than using the <strong> <em>Array.sort()</em> </strong> method, especially for larger strings. However, it can be useful for understanding the sorting process and for implementing custom sorting algorithms.</p> <h3>Sorting characters in a string using a library:</h3> <p>There are also several JavaScript libraries that provide sorting functions for strings. One popular library is <strong> <em>lodash</em> </strong> , which provides a <strong> <em>sortBy()</em> </strong> function that can be used to sort characters in a string:</p> <p> <strong>Example:</strong> </p> <pre> const _ = require('lodash'); const str = 'hello world'; const sortedStr = _.sortBy(str).join(''); console.log(sortedStr); </pre> <p> <strong>Output:</strong> </p> <pre> dehllloorw </pre> <p> <strong>Explanation:</strong> </p> <p>In this code, we first <strong> <em>import</em> </strong> the <strong> <em>lodash</em> </strong> library using the <strong> <em>require()</em> </strong> function. After that, we use the <strong> <em>sortBy()</em> </strong> function to sort the characters in the string in ascending order. Finally, we join the sorted array back into a string using the <strong> <em>join()</em> </strong> method.</p> <h4>Note that:- we can also use the <em>spread operator (...)</em> to convert the string into an array without using the <em>split() method</em> :</h4> <pre> const _ = require('lodash'); const str = 'hello world'; const sortedStr = _.sortBy([...str]).join(''); console.log(sortedStr); </pre> <p> <strong>Output:</strong> </p> <pre> dehllloorw </pre> <h3>Sorting characters in descending order:</h3> <p>By default, the <strong> <em>Array.sort()</em> </strong> method sorts elements in ascending order. However, we can sort elements in descending order by passing a comparison function to the <strong> <em>sort() method</em> </strong> .</p> <p> <strong>Example:</strong> </p> <p>Here's an example of how to sort characters in a string in descending order:</p> <pre> const str = 'hello world'; const sortedStr = str.split('').sort((a, b) => b.localeCompare(a)).join(''); console.log(sortedStr); </pre> <p> <strong>Output:</strong> </p> <pre> wroolllhed </pre> <p> <strong>Explanation:</strong> </p> <p>In this code, we pass a comparison function to the <strong> <em>sort() method</em> </strong> that compares characters in descending order using the <strong> <em>localeCompare()</em> </strong> method.</p> <h2>Conclusion:</h2> <p>Sorting characters in a string is a common task in JavaScript programming. We can use several techniques to achieve this, including the <strong> <em>Array.sort() method</em> </strong> , a <strong> <em>for loop</em> </strong> , or a <strong> <em>library function</em> </strong> . The most suitable method depends on the specific requirements of the task and the size of the input string.</p> <hr></str.length;>
Selitys:
Tässä koodissa alustamme ensin tyhjän merkkijonon lajiteltuStr . Sen jälkeen käytämme kahta sisäkkäistä silmukoille vertailla jokaista merkkiä jokaiseen merkkijonon muihin merkkiin. Jos hahmo ei ole oikeassa järjestyksessä, vaihdamme sen sen jälkeen tulevan merkin kanssa.
Jälkeen sisäsilmukka valmistuu , lisäämme nykyisen merkin kohtaan lajiteltuStr merkkijono. Jatkamme tätä prosessia, kunnes kaikki merkit on lajiteltu. Tämä menetelmä voi olla vähemmän tehokas kuin käyttämällä Array.sort() menetelmää, erityisesti suuremmille kieleille. Siitä voi kuitenkin olla hyötyä lajitteluprosessin ymmärtämisessä ja mukautettujen lajittelualgoritmien toteuttamisessa.
Merkkien lajittelu merkkijonossa kirjaston avulla:
On myös useita JavaScript-kirjastoja, jotka tarjoavat lajittelutoimintoja merkkijonoille. Yksi suosittu kirjasto on lodash , joka tarjoaa a Järjestä() toiminto, jota voidaan käyttää merkkien lajitteluun merkkijonossa:
Esimerkki:
const _ = require('lodash'); const str = 'hello world'; const sortedStr = _.sortBy(str).join(''); console.log(sortedStr);
Lähtö:
dehllloorw
Selitys:
silmukoille java
Tässä koodissa me ensin tuonti the lodash kirjasto käyttäen vaatia() toiminto. Sen jälkeen käytämme Järjestä() toiminto lajitella merkkijonon merkit nousevaan järjestykseen. Lopuksi yhdistämme lajitellun taulukon takaisin merkkijonoksi käyttämällä liittyä seuraan() menetelmä.
Huomaa, että: - voimme myös käyttää levitysoperaattori (...) jos haluat muuntaa merkkijonon taulukoksi käyttämättä split()-menetelmä :
const _ = require('lodash'); const str = 'hello world'; const sortedStr = _.sortBy([...str]).join(''); console.log(sortedStr);
Lähtö:
dehllloorw
Merkkien lajittelu laskevaan järjestykseen:
Oletuksena Array.sort() menetelmä lajittelee elementit nousevaan järjestykseen. Voimme kuitenkin lajitella elementit laskevaan järjestykseen välittämällä vertailufunktion sort()-menetelmä .
Esimerkki:
Tässä on esimerkki merkkijonojen lajittelemisesta laskevassa järjestyksessä:
const str = 'hello world'; const sortedStr = str.split('').sort((a, b) => b.localeCompare(a)).join(''); console.log(sortedStr);
Lähtö:
wroolllhed
Selitys:
Tässä koodissa välitämme vertailufunktion sort()-menetelmä joka vertaa merkkejä laskevassa järjestyksessä käyttämällä localeCompare() menetelmä.
Johtopäätös:
Merkkien lajittelu merkkijonossa on yleinen tehtävä JavaScript-ohjelmoinnissa. Voimme käyttää useita tekniikoita saavuttaaksemme tämän, mukaan lukien Array.sort() -menetelmä , a silmukalle , tai a kirjaston toiminto . Sopivin menetelmä riippuu tehtävän erityisvaatimuksista ja syötemerkkijonon koosta.