In dit voorbeeld leert u een JavaScript-programma te schrijven dat een reeks objecten op eigenschapswaarden sorteert.
Om dit voorbeeld te begrijpen, moet u kennis hebben van de volgende JavaScript-programmeeronderwerpen:
- JavaScript-matrix sorteren ()
- JavaScript-matrix
- JavaScript-objecten
Voorbeeld 1: Sorteer matrix op eigenschapnaam
// 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));
Uitvoer
((naam: "Jack", leeftijd: 25), (naam: "John", leeftijd: 24), (naam: "Sara", leeftijd: 24))
In het bovenstaande programma wordt de sort()
methode gebruikt om een array te sorteren op de eigenschap name van zijn objectelementen.
De sort()
methode sorteert zijn elementen volgens de waarden die worden geretourneerd door een aangepaste sorteerfunctie (in dit geval vergelijkNaam).
Hier,
- De eigenschapsnamen worden met de
toUpperCase()
methode gewijzigd in hoofdletters . - Als het vergelijken van twee namen resulteert in 1 , wordt hun volgorde gewijzigd.
- Als het vergelijken van twee namen -1 of 0 oplevert , blijft hun volgorde ongewijzigd.
Voorbeeld 2: Sorteer matrix op ouderdom van eigenschap
// 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));
Uitvoer
((naam: "John", leeftijd: 22), (naam: "Sara", leeftijd: 24), (naam: "Jack", leeftijd: 27))
In het bovenstaande programma wordt de sort()
methode gebruikt om een array-element te sorteren op de eigenschap age.
Om de ouderdomseigenschap van twee objecten te vergelijken, kunnen we ze eenvoudig aftrekken.
- Als hun verschil een negatieve waarde is, wordt hun volgorde gewijzigd.
- Als hun verschil een positieve waarde is, blijft de volgorde zoals ze is.