logo

Kako sortirati znakove u nizu u JavaScriptu

Razvrstavanje znakova u nizu je čest zadatak u programiranju, posebno u web razvoju. U JavaScriptu postoje različiti načini sortiranja znakova u nizu. U ovom ćemo članku istražiti neke od najpopularnijih tehnika sortiranja znakova u nizu u JavaScriptu.

obrnuti niz java

Sortiranje znakova u nizu pomoću metode Array.sort():

Najlakši način sortiranja znakova u nizu u JavaScriptu je pretvaranje niza u niz znakova i zatim korištenje Array.sort() metoda za sortiranje niza.

Primjer:

Sljedeći kod pokazuje kako sortirati znakove u nizu pomoću ove metode:

 const str = 'hello world'; const sortedStr = str.split('').sort().join(''); console.log(sortedStr); 

Izlaz:

 dehllloorw 

Obrazloženje:

U ovom kodu prvo stvaramo niz str a zatim ga pretvoriti u niz znakova pomoću podjela() metoda. Nakon toga koristimo metoda sort(). za sortiranje znakova u nizu uzlaznim redoslijedom. Na kraju, pridružujemo razvrstani niz natrag u niz koristeći pridružiti() metoda.

Imajte na umu da je vrsta() metoda sortira elemente na mjestu, što znači da modificira izvorni niz. U gornjem primjeru ne čuvamo izvorni niz jer ga izravno mijenjamo. Ako trebamo sačuvati izvorni niz, možemo napraviti njegovu kopiju prije pretvaranja u niz:

Primjer:

 const str = 'hello world'; const strCopy = str.slice(); // make a copy of the string const sortedStr = strCopy.split('').sort().join(''); console.log(sortedStr); 

Izlaz:

 dehllloorw 

Razvrstavanje znakova u nizu pomoću for petlje:

Drugi način sortiranja znakova u nizu u JavaScriptu je korištenje a za petlju . Ova metoda uključuje ponavljanje svakog znaka u nizu, usporedbu sa svakim drugim znakom i zamjenu njihovih pozicija ako nisu u ispravnom redoslijedu.

Primjer:

Evo primjera sortiranja znakova u nizu pomoću for petlje:

 const str = &apos;hello world&apos;; let sortedStr = &apos;&apos;; 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(&apos;lodash&apos;); const str = &apos;hello world&apos;; const sortedStr = _.sortBy(str).join(&apos;&apos;); 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(&apos;lodash&apos;); const str = &apos;hello world&apos;; const sortedStr = _.sortBy([...str]).join(&apos;&apos;); 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&apos;s an example of how to sort characters in a string in descending order:</p> <pre> const str = &apos;hello world&apos;; const sortedStr = str.split(&apos;&apos;).sort((a, b) =&gt; b.localeCompare(a)).join(&apos;&apos;); 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;>

Obrazloženje:

U ovom kodu prvo inicijaliziramo prazan niz koji se zove sortedStr . Nakon toga koristimo dva ugniježđena za petlje za usporedbu svakog znaka sa svakim drugim znakom u nizu. Ako znak nije u ispravnom redoslijedu, mijenjamo ga sa znakom koji dolazi nakon njega.

Nakon što unutarnja petlja je dovršena , dodajemo trenutni znak u sortedStr niz. Nastavljamo ovaj proces dok se svi znakovi ne razvrstaju. Ova metoda može biti manje učinkovita od korištenja Array.sort() metoda, posebno za veće žice. Međutim, može biti korisno za razumijevanje procesa sortiranja i za implementaciju prilagođenih algoritama sortiranja.

Sortiranje znakova u nizu pomoću biblioteke:

Također postoji nekoliko JavaScript biblioteka koje pružaju funkcije sortiranja nizova. Jedna popularna biblioteka je lodash , koji pruža a sortiraj po() funkcija koja se može koristiti za sortiranje znakova u nizu:

Primjer:

 const _ = require(&apos;lodash&apos;); const str = &apos;hello world&apos;; const sortedStr = _.sortBy(str).join(&apos;&apos;); console.log(sortedStr); 

Izlaz:

 dehllloorw 

Obrazloženje:

U ovom kodu, mi prvi uvoz the lodash knjižnica pomoću zahtijevati () funkcija. Nakon toga koristimo sortiraj po() funkcija za sortiranje znakova u nizu uzlaznim redoslijedom. Na kraju, pridružujemo razvrstani niz natrag u niz koristeći pridružiti() metoda.

Imajte na umu da:- također možemo koristiti operator širenja (...) za pretvaranje niza u niz bez korištenja metoda split(). :

 const _ = require(&apos;lodash&apos;); const str = &apos;hello world&apos;; const sortedStr = _.sortBy([...str]).join(&apos;&apos;); console.log(sortedStr); 

Izlaz:

 dehllloorw 

Sortiranje znakova silaznim redoslijedom:

Prema zadanim postavkama, Array.sort() metoda sortira elemente uzlaznim redoslijedom. Međutim, elemente možemo sortirati silaznim redoslijedom prosljeđivanjem funkcije usporedbe na metoda sort(). .

Primjer:

Evo primjera sortiranja znakova u nizu silaznim redoslijedom:

ručno testiranje
 const str = &apos;hello world&apos;; const sortedStr = str.split(&apos;&apos;).sort((a, b) =&gt; b.localeCompare(a)).join(&apos;&apos;); console.log(sortedStr); 

Izlaz:

 wroolllhed 

Obrazloženje:

U ovom kodu prosljeđujemo funkciju usporedbe na metoda sort(). koji uspoređuje znakove silaznim redoslijedom pomoću localeCompare() metoda.

Zaključak:

Sortiranje znakova u nizu uobičajen je zadatak u JavaScript programiranju. Možemo koristiti nekoliko tehnika da to postignemo, uključujući Metoda Array.sort(). , a za petlju , ili a funkcija knjižnice . Najprikladnija metoda ovisi o specifičnim zahtjevima zadatka i veličini ulaznog niza.