The sortimismeetod kasutatakse massiivi erinevate elementide paigutamiseks kindlas järjekorras.
Süntaks
Sorteerimismeetodi üldine süntaks on:
massiiv.sort ();See meetod tagastab sorditud massiivi vaikimisi kasvavas järjekorras.
JavaScripti sortimismeetodi mõistmiseks arutame paari näidet.
Näited
Oletame stringide massiivi, milles meil on Linuxi opsüsteemide mõned erinevad nimed.
laske arr = ["Ubuntu", "Fedora", "CentOS", "Debian", "Kali Linux"]Kui nüüd rakendame selle massiivi jaoks sortimismeetodit:
arr.sort ();See sorteerib massiivi kindlasti tähestikulises järjekorras. Väljundit näeme alloleval ekraanipildil.
Kuid kui tahame saada stringi vastupidises / kahanevas järjekorras. Sorteeritud massiivi kohal saame rakendada Javascripti sisseehitatud vastupidist funktsiooni:
var sortedArray = arr.sort ();sortedArray.tagurpidi();
Lühem viis vastupidiseks on:
arr.sort ().tagurpidi();Hästi! See töötas nööri jaoks hästi. Proovime, kas see töötab ka numbrite puhul.
Oletame kõigepealt arvude massiivi.
Seejärel rakendage arvude massiivi peale sortimismeetodit.
arr.sort ();Tundub, et see ei töötanud hästi nagu stringi puhul. Kuna sortimismeetod teisendab arvud kõigepealt stringideks ja sorteerib seejärel Unicode'i põhjal. Kuigi „8“ tuleb numbrite järjekorras enne „14“. Kuid UTF-16 koodiühikute järjekorras on "14" enne "8". Hea asi Javascriptis, saime sellele lahenduse.
Võrdle funktsiooni
Siit tuleb võrdlusfunktsiooni mõiste, mis on abiks numbrite sorteerimisel. Tagasihelistamisfunktsioonina saame kasutada sortimismeetodi võrdlusfunktsiooni, mis võtab kaks elementi. Seejärel sorteerib nad need vastavalt meie funktsioonile võrdlusfunktsioonile ja tagastab need sortimismeetodile, tehes seda pidevalt, kuni jõuab massiivi lõpuni.
Sorteerimismeetodi süntaks võrdlusfunktsiooniga oleks selline:
massiiv.sort (võrdleFunktsioon);Kui nüüd heita pilk võrdlusfunktsiooni tehnilistele üksikasjadele, siis see tegelikult töötabki. Kui me ei paku sorteerimismeetodiga võrdlusfunktsiooni, sorteeritakse see vastavalt UTF-16 koodiüksuste tellimustele. Kui kasutame võrdlusfunktsiooni, oleksid kõik elemendid sorditud vastavalt võrdlusfunktsiooni tagastusväärtusele. Niisiis, kui tahame kirjutada arvude võrdlusfunktsiooni. See oleks täpselt selline:
funktsioon (a, b) tagastab a - bVõrdlusfunktsioon võtab korraga kaks väärtust ja tagastab kolme tüüpi väärtusi.
Tõene või „1”, kui esimene väärtus on enne teist väärtust või esimene väärtus on suurem kui teine väärtus:
Väär või „-1”, kui esimene väärtus tuleb teise väärtuse järele või kui esimene väärtus on suurem kui teine väärtus.
Ja “0”, kui kaks väärtust on võrdsed.
Kui proovime seda rakendada numbrimassiivi sorteerimiseks. Saame seda rakendada järgmiselt:
arr.sort (funktsioon (a, b) return a - b)Nagu väljundist näete, on numbritega massiiv korralikult sorteeritud.
Lühem viis sama ülesande täitmiseks on järgmine:
arr.sort ((a, b) => a - b)Kuid see töötab ainult numbrite võrdlemiseks.
Samuti saame sortimismeetodi abil sortida objektide massiivi sõltuvalt objekti väärtustest, mida soovime objektide massiivi sorteerida. Oletame, et me soovime sortida kasutajate arvu põhjal objektide massiivi, milles iga objekt sisaldab Linuxi operatsioonisüsteeme ja nende kasutajate arvu, siis kasutame järgmist:
arr = [nimi: "Ubuntu", kasutajad: 3000
nimi: "Fedora", kasutajad: 1500
nimi: "CentOS", kasutajad: 2000
nimi: "Debian", kasutajad: 5000
nimi: "Kali Linux", kasutajad: 4000
]
Niisiis, kasutajate baasil sortimiseks. Sortimisfunktsioon oleks selline:
arr.sort (() => return a.kasutajad - b.kasutajad)Niisiis on need erinevad viisid sortimismeetodi kasutamiseks mis tahes tüüpi massiivide sortimiseks.
Järeldus
Selles artiklis oleme õppinud, kuidas sorteerida erinevat tüüpi massiive Javascripti sisseehitatud sortimisfunktsiooni abil. Selles artiklis selgitatakse sorteerimisfunktsiooni mõistet algajast kesktasemeni väga lihtsalt, põhjalikult ja tõhusalt. Nii et jätkake Javascripti abil õppimist, töötamist ja kogemuste saamist linuxhint.com et sellest paremini aru saada. Tänan sind väga.