The rūšiavimo metodas yra naudojamas skirtingiems masyvo elementams išdėstyti tam tikra tvarka.
Sintaksė
Bendroji rūšiavimo metodo sintaksė yra:
masyvas.rūšiuoti ();Šis metodas pagal numatytuosius nustatymus grąžina surūšiuotą masyvą didėjimo tvarka.
Aptarsime keletą pavyzdžių, kad suprastume „JavaScript“ rūšiavimo metodą.
Pavyzdžiai
Mes manome, kad eilutės masyvas, kuriame mes turime keletą skirtingų „Linux“ operacinių sistemų pavadinimų.
tegul arr = ["Ubuntu", "Fedora", "CentOS", "Debian", "Kali Linux"]Dabar, jei pritaikysime rūšiavimo metodą šiam masyvui:
arr.rūšiuoti ();Tai tikrai rūšiuos masyvą abėcėlės tvarka. Išvestį galime pamatyti žemiau esančiame ekrano kopijoje.
Bet jei norime eilutę gauti atvirkštine / mažėjančia tvarka. Rūšiuotame masyve galime pritaikyti „Javascript“ integruotą atvirkštinę funkciją taip:
var sortedArray = arr.rūšiuoti ();sortedArray.atvirkštinė ();
Trumpesnis atvirkštinis būdas yra:
arr.rūšiuoti ().atvirkštinė ();Gerai! Tai puikiai veikė eilutę. Pabandykime, ar tai tinka ir skaičiams.
Taigi, mes pirmiausia laikome skaičių masyvą.
Tada taikykite rūšiavimo metodą per skaičių masyvą.
arr.rūšiuoti ();Atrodo, kad jis neveikė gerai, kaip ir styginiams. Kadangi rūšiavimo metodas pirmiausia paverčia skaičius į eilutes, o tada rūšiuoja ant „Unicode“ pagrindo. Nors „8“ yra skaitmenų tvarka prieš „14“. Tačiau UTF-16 kodų vienetų tvarka „14“ yra prieš „8“. Geras dalykas „Javascript“, mes gavome tai sprendimą.
Palyginti funkciją
Čia atsiranda lyginimo funkcijos samprata, kuri praverčia rūšiuojant skaičius. Mes galime naudoti palyginimo funkciją su rūšiavimo metodu kaip atgalinio ryšio funkciją, kuriai reikalingi du elementai. Tada jis surūšiuoja juos pagal mūsų reikalavimą lyginimo funkcijoje ir grąžina juos į rūšiavimo metodą, nuolat tai darydamas, kol pasiekia masyvo pabaigą.
Rūšiavimo metodo sintaksė su „CompareFunction“ būtų tokia:
masyvas.rūšiuoti (palygintiFunkcija);Dabar, jei pažvelgsime į technines „detailFunction“ detales, tai kaip jis iš tikrųjų veikia. Jei neteiksime palyginimo funkcijos su rūšiavimo metodu, jis bus rūšiuojamas pagal UTF-16 kodo vienetų užsakymus. Jei naudosime palyginti funkciją, visi elementai būtų rūšiuojami pagal grąžinimo vertę palyginti. Taigi, jei norime parašyti skaičių palyginimo funkciją. Tai būtų taip:
funkcija (a, b) grąžinti a - bFunkcija „CompareFunction“ vienu metu ima dvi reikšmes ir pateikia trijų tipų reikšmes.
„True“ arba „1“, jei pirmoji reikšmė ateina prieš antrąją vertę arba pirmoji vertė yra didesnė už antrąją vertę:
Klaidinga arba „-1“, jei pirmoji reikšmė ateina po antrosios vertės arba pirmoji reikšmė yra didesnė už antrąją.
Ir „0“, jei dvi reikšmės yra lygios.
Dabar, jei bandysime jį pritaikyti, kad surūšiuotumėte skaičių masyvą. Mes galime tai pritaikyti taip:
arr.rūšiuoti (funkcija (a, b) grąžinti a - b)Kaip matote išvestyje, masyvas, turintis skaičius, buvo tinkamai surūšiuotas.
Trumpesnis tos pačios užduoties atlikimo būdas bus toks:
arr.rūšiuoti ((a, b) => a - b)Bet tai tinka tik skaičiams palyginti.
Mes taip pat galime naudoti rūšiavimo metodą, kad surūšiuotume objektų masyvą, atsižvelgiant į objekto vertes, kurias norime rūšiuoti objektų masyvą. Jei tarkime, kad norėtume surūšiuoti pagal vartotojų skaičių objektų masyvą, kuriame kiekviename objekte yra „Linux“ operacinės sistemos ir jų vartotojų skaičius, tada naudosime šiuos veiksmus:
arr = [name: "Ubuntu", vartotojai: 3000
name: "Fedora", vartotojai: 1500
pavadinimas: "CentOS", vartotojai: 2000
name: "Debian", vartotojai: 5000
pavadinimas: "Kali Linux", vartotojai: 4000
]
Taigi, norint rūšiuoti pagal vartotojų bazę. Rūšiavimo funkcija būtų tokia:
arr.rūšiuoti (() => grąžinti a.vartotojai - b.vartotojai)Taigi, tai yra įvairūs rūšiavimo metodo naudojimo būdai rūšiuojant bet kokio tipo masyvus.
Išvada
Šiame straipsnyje mes sužinojome, kaip galime rūšiuoti įvairių tipų masyvą, naudodami integruotą „Javascript“ rūšiavimo funkciją. Šiame straipsnyje labai lengvai, giliai ir veiksmingai paaiškinama rūšiavimo funkcijos nuo pradedančiųjų iki vidutinio lygio samprata. Taigi, toliau mokykitės, dirbkite ir gaukite „Javascript“ patirties linuxhint.com kad geriau jį suprastum. Labai ačiū.