Simbolių rūšiavimas eilutėje yra dažna užduotis programuojant, ypač kuriant žiniatinklius. „JavaScript“ yra įvairių būdų, kaip rūšiuoti simbolius eilutėje. Šiame straipsnyje išnagrinėsime keletą populiariausių būdų, kaip rūšiuoti simbolius eilutėje „JavaScript“.
mikropaslaugų pamoka
Simbolių rūšiavimas eilutėje naudojant Array.sort() metodą:
Lengviausias būdas rūšiuoti simbolius eilutėje „JavaScript“ yra konvertuoti eilutę į simbolių masyvą ir naudoti Array.sort() masyvo rūšiavimo metodas.
Pavyzdys:
Šis kodas parodo, kaip rūšiuoti simbolius eilutėje naudojant šį metodą:
const str = 'hello world'; const sortedStr = str.split('').sort().join(''); console.log(sortedStr);
Išvestis:
dehllloorw
Paaiškinimas:
Šiame kode pirmiausia sukuriame eilutę g ir konvertuokite jį į simbolių masyvą naudodami padalinti () metodas. Po to mes naudojame Rūšiuoti() metodas norėdami surūšiuoti masyvo simbolius didėjančia tvarka. Galiausiai surūšiuotą masyvą sujungiame atgal į eilutę naudodami prisijungti () metodas.
Atkreipkite dėmesį, kad Rūšiuoti () metodas surūšiuoja elementus į vietą, o tai reiškia, kad jis pakeičia pradinį masyvą. Aukščiau pateiktame pavyzdyje mes neišsaugome pradinės eilutės, nes ją tiesiogiai modifikuojame. Jei mums reikia išsaugoti pradinę eilutę, prieš konvertuodami į masyvą galime padaryti jos kopiją:
Pavyzdys:
const str = 'hello world'; const strCopy = str.slice(); // make a copy of the string const sortedStr = strCopy.split('').sort().join(''); console.log(sortedStr);
Išvestis:
dehllloorw
Simbolių rūšiavimas eilutėje naudojant for kilpą:
Kitas būdas rūšiuoti simbolius eilutėje „JavaScript“ yra naudoti a už kilpą . Šis metodas apima kiekvieno eilutės simbolio kartojimą, palyginimą su kiekvienu kitu simboliu ir jų pozicijų keitimą, jei jie nėra tinkama tvarka.
Pavyzdys:
Štai pavyzdys, kaip rūšiuoti simbolius eilutėje naudojant for kilpą:
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;>
Paaiškinimas:
Šiame kode pirmiausia inicijuojame tuščią eilutę, vadinamą surūšiuotaStr . Po to naudojame du įdėtus kilpoms kad palygintumėte kiekvieną simbolį su kiekvienu kitu eilutės simboliu. Jei simbolis yra neteisinga tvarka, mes jį sukeičiame simboliu, kuris ateina po jo.
Po to, kai baigiasi vidinė kilpa , dabartinį simbolį pridedame prie surūšiuotaStr styga. Tęsiame šį procesą, kol visi simboliai bus surūšiuoti. Šis metodas gali būti mažiau efektyvus nei naudojant Array.sort() metodas, ypač didesnėms stygoms. Tačiau tai gali būti naudinga norint suprasti rūšiavimo procesą ir įdiegti pasirinktinius rūšiavimo algoritmus.
Simbolių rūšiavimas eilutėje naudojant biblioteką:
Taip pat yra keletas „JavaScript“ bibliotekų, kurios teikia eilučių rūšiavimo funkcijas. Viena populiari biblioteka yra lodash , kuri suteikia a Rūšiuoti pagal() funkcija, kurią galima naudoti rūšiuojant simbolius eilutėje:
Pavyzdys:
const _ = require('lodash'); const str = 'hello world'; const sortedStr = _.sortBy(str).join(''); console.log(sortedStr);
Išvestis:
dehllloorw
Paaiškinimas:
Šiame kode mes pirmiausia importuoti į lodash biblioteka naudojant reikalauti () funkcija. Po to mes naudojame Rūšiuoti pagal() funkcija rūšiuoti eilutės simbolius didėjančia tvarka. Galiausiai surūšiuotą masyvą sujungiame atgal į eilutę naudodami prisijungti () metodas.
Atkreipkite dėmesį, kad: - taip pat galime naudoti sklaidos operatorius (...) konvertuoti eilutę į masyvą nenaudojant split() metodas :
const _ = require('lodash'); const str = 'hello world'; const sortedStr = _.sortBy([...str]).join(''); console.log(sortedStr);
Išvestis:
dehllloorw
Simbolių rūšiavimas mažėjančia tvarka:
Pagal numatytuosius nustatymus, Array.sort() metodas rūšiuoja elementus didėjančia tvarka. Tačiau galime rūšiuoti elementus mažėjančia tvarka, perduodami palyginimo funkciją į Rūšiuoti() metodas .
Pavyzdys:
Štai pavyzdys, kaip rūšiuoti simbolius eilutėje mažėjančia tvarka:
const str = 'hello world'; const sortedStr = str.split('').sort((a, b) => b.localeCompare(a)).join(''); console.log(sortedStr);
Išvestis:
wroolllhed
Paaiškinimas:
Šiame kode mes perduodame palyginimo funkciją Rūšiuoti() metodas kuris lygina simbolius mažėjančia tvarka naudojant localePalyginti () metodas.
koks mano monitoriaus ekrano dydis
Išvada:
Simbolių rūšiavimas eilutėje yra įprasta „JavaScript“ programavimo užduotis. Norėdami tai pasiekti, galime naudoti keletą metodų, įskaitant Masyvas.sort() metodas , a už kilpą , arba a bibliotekos funkcija . Tinkamiausias metodas priklauso nuo konkrečių užduoties reikalavimų ir įvesties eilutės dydžio.