JavaScripti massiivi sortimine - kuidas kasutada JS-i sortimismeetodeid (koodinäidetega)

JavaScripti abil saame massiivi elemente hõlpsalt sorteerida sisseehitatud meetodi abil, mida nimetatakse funktsiooniks sort ().

Andmetüübid (string, arv ja nii edasi) võivad aga massiiviti erineda. See tähendab, et meetodi sort () kasutamine pole alati sobiv lahendus.

Selles postituses saate teada, kuidas sortida massiivi JavaScripti abil stringide ja numbrite meetodi sort () abil.

Stringide massiiv

Alustame stringidest:

const teams = ['Real Madrid', 'Manchester Utd', 'Bayern Munich', 'Juventus'];

Kui kasutame meetodit sort (), sorteeritakse elemendid vaikimisi kasvavas järjekorras (A kuni Z):

teams.sort(); // ['Bayern Munich', 'Juventus', 'Manchester Utd', 'Real Madrid']

Kui eelistate massiivi sortida kahanevas järjekorras, peate selle asemel kasutama meetodit reverse ():

teams.reverse(); // ['Real Madrid', 'Manchester Utd', 'Juventus', 'Bayern Munich']

Numbrite massiiv

Numbrite sortimine pole kahjuks nii lihtne. Kui rakendame sortimismeetodit otse numbrimassiivi külge, näeme ootamatut tulemust:

const numbers = [3, 23, 12]; numbers.sort(); // --> 12, 23, 3

Miks sort () meetod arvude puhul ei tööta?

Tegelikult see töötab, kuid see probleem juhtub seetõttu, et JavaScript sorteerib numbrid tähestiku järgi. Lubage mul seda üksikasjalikult selgitada.

Mõelgem A = 1, B = 2 ja C = 3.

const myArray = ['C', 'BC', 'AB']; myArray.sort(); // [AB, BC, C]

Näiteks, kui meil on kolm stringi nagu C (3), BC (23) ja AB (12), sorteerib JavaScript need AB, BC ja C kasvavas järjestuses, mis on tähestikuliselt õige.

Kuid JavaScript sorteerib numbrid (jälle tähestiku järgi) 12, 23 ja 3, mis on vale.

Lahendus: funktsioon Võrdle

Õnneks saame meetodit sort () toetada põhilise võrdlusfunktsiooniga, mis selle triki ära teeb:

function(a, b) {return a - b}

Sorteerimismeetodiga saab õnneks negatiivseid, null- ja positiivseid väärtusi õiges järjekorras sortida. Kui meetod sort () võrdleb kahte väärtust, saadab see väärtused meie võrdlusfunktsioonile ja sorteerib väärtused vastavalt tagastatud väärtusele.

  • Kui tulemus on negatiivne, sorteeritakse a enne b.
  • Kui tulemus on positiivne, sorteeritakse b enne a.
  • Kui tulemus on 0, ei muutu midagi.

Kõik, mida vajame, on meetodi sort () kasutamine võrdlusfunktsiooni abil:

const numbers = [3, 23, 12]; numbers.sort(function(a, b){return a - b}); // --> 3, 12, 23

Kui soovime numbrid järjestada kahanevas järjekorras, peame seekord esimese parameetri (a) lahutama teise parameetri (b):

const numbers = [3, 23, 12]; numbers.sort(function(a, b){return b - a}); // --> 23, 12, 3

Tõmba otsad kokku

Nii nagu näeme, saab massiivi elementide sorteerimine JavaScripti abil sort () meetodiga hõlpsasti, kui teame, kuidas seda õigesti kasutada. Loodan, et minu postitus aitab teil mõista, kuidas sort () meetodit JavaScriptis õigesti kasutada.

Kui soovite veebiarenduse kohta rohkem teada saada, külastage julgelt minu Youtube'i kanalit.

Aitäh, et lugesid!