I dette eksemplet lærer du å skrive et JavaScript-program som vil sortere en rekke objekter etter eiendomsverdier.
For å forstå dette eksemplet, bør du ha kunnskap om følgende JavaScript-programmeringsemner:
- JavaScript Array sort ()
- JavaScript Array
- JavaScript-objekter
Eksempel 1: Sorter matrise etter eiendomsnavn
// 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));
Produksjon
((navn: "Jack", alder: 25), (navn: "John", alder: 24), (navn: "Sara", alder: 24))
I programmet ovenfor sort()
brukes metoden til å sortere en matrise etter navnegenskapen til objektelementene.
Den sort()
metode sorterer dens elementer i henhold til verdiene som returneres av en tilpasset sorteringsfunksjon (compareName i dette tilfelle).
Her,
- Eiendomsnavnene endres til store bokstaver ved hjelp av
toUpperCase()
metoden. - Hvis sammenligning av to navn resulterer i 1 , endres rekkefølgen deres.
- Hvis sammenligning av to navn resulterer i -1 eller 0 , blir rekkefølgen deres igjen som den er.
Eksempel 2: Sorter matrise etter eiendomsalder
// 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));
Produksjon
((navn: "John", alder: 22), (navn: "Sara", alder: 24), (navn: "Jack", alder: 27))
I programmet ovenfor sort()
brukes metoden til å sortere et matriseelement etter aldersegenskapen.
For å sammenligne aldersegenskapen til to objekter, kan vi bare trekke dem fra.
- Hvis forskjellen deres er en negativ verdi, endres ordren.
- Hvis forskjellen deres er en positiv verdi, blir ordren igjen som den er.