I dette eksempel lærer du at skrive et JavaScript-program, der sorterer en matrix af objekter efter egenskabsværdier.
For at forstå dette eksempel skal du have kendskab til følgende JavaScript-programmeringsemner:
- JavaScript Array sort ()
- JavaScript Array
- JavaScript-objekter
Eksempel 1: Sorter matrix efter ejendomsnavn
// 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));
Produktion
((navn: "Jack", alder: 25), (navn: "John", alder: 24), (navn: "Sara", alder: 24))
I ovennævnte program sort()
bruges metoden til at sortere en matrix efter navnegenskaben for dens objektelementer.
Den sort()
metode sorterer dens elementer i overensstemmelse med værdierne, der returneres af en brugerdefineret sortering funktion (compareName i dette tilfælde).
Her,
- Ejendomsnavnene ændres til store bogstaver ved hjælp af
toUpperCase()
metoden. - Hvis sammenligning af to navne resulterer i 1 , ændres deres rækkefølge.
- Hvis sammenligning af to navne resulterer i -1 eller 0 , efterlades deres rækkefølge som den er.
Eksempel 2: Sorter matrix efter ejendomsalder
// 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));
Produktion
((navn: "John", alder: 22), (navn: "Sara", alder: 24), (navn: "Jack", alder: 27))
I ovenstående program sort()
bruges metoden til at sortere et matrixelement efter aldersegenskaben.
For at sammenligne aldersegenskaben for to objekter kan vi simpelthen trække dem.
- Hvis deres forskel er en negativ værdi, ændres deres rækkefølge.
- Hvis deres forskel er en positiv værdi, efterlades rækkefølgen som den er.