Tässä esimerkissä opit kirjoittamaan JavaScript-ohjelman, joka lajittelee joukko objekteja ominaisuusarvojen mukaan.
Tämän esimerkin ymmärtämiseksi sinulla on oltava tieto seuraavista JavaScript-ohjelmoinnin aiheista:
- JavaScript-taulukon lajittelu ()
- JavaScript-taulukko
- JavaScript-objektit
Esimerkki 1: Lajittele taulukko ominaisuuden nimen mukaan
// program to sort array by property name function compareName(a, b) ( // converting to uppercase to have case-insensitive comparison const name1 = a.name.toUpperCase(); const name2 = b.name.toUpperCase(); let comparison = 0; if (name1> name2) ( comparison = 1; ) else if (name1 < name2) ( comparison = -1; ) return comparison; ) const students = ((name: 'Sara', age:24),(name: 'John', age:24), (name: 'Jack', age:25)); console.log(students.sort(compareName));
Tuotos
((nimi: "Jack", ikä: 25), (nimi: "John", ikä: 24), (nimi: "Sara", ikä: 24))
Edellä olevassa ohjelmassa sort()
menetelmää käytetään lajittelemaan taulukko sen objektielementtien nimiominaisuuden mukaan.
sort()
Menetelmä lajittelee mukainen elementtien arvojen palautetaan mukautetun lajittelu (compareName tässä tapauksessa).
Tässä,
- Ominaisuuden nimet vaihdetaan isoihin kirjaimiin
toUpperCase()
menetelmällä. - Jos verrataan kahta nimiä tuloksia 1 , niin niiden järjestys on muuttunut.
- Jos vertaamalla kahta nimeä saadaan -1 tai 0 , niiden järjestys jätetään sellaisenaan.
Esimerkki 2: Lajittele taulukko omaisuuden iän mukaan
// program to sort array by property name function compareAge(a, b) ( return a.age - b.age; ) const students = ((name: 'Sara', age:24),(name: 'John', age:22), (name: 'Jack', age:27)); console.log(students.sort(compareAge));
Tuotos
((nimi: "John", ikä: 22), (nimi: "Sara", ikä: 24), (nimi: "Jack", ikä: 27))
Edellä olevassa ohjelmassa sort()
menetelmää käytetään lajittelemaan taulukkoelementti ikäominaisuuden mukaan.
Kahden objektin ikäominaisuuden vertaamiseksi voimme yksinkertaisesti vähentää ne.
- Jos niiden ero on negatiivinen arvo, niiden järjestystä muutetaan.
- Jos niiden ero on positiivinen arvo, järjestys jätetään sellaisenaan.