I det här exemplet lär du dig att skriva ett JavaScript-program som sorterar en matris med objekt efter egenskaper.
För att förstå detta exempel bör du ha kunskap om följande JavaScript-programmeringsämnen:
- JavaScript Array sort ()
- JavaScript Array
- JavaScript-objekt
Exempel 1: Sortera matris efter fastighetsnamn
// 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
((namn: "Jack", ålder: 25), (namn: "John", ålder: 24), (namn: "Sara", ålder: 24))
I ovanstående program används sort()
metoden för att sortera en matris efter namnegenskapen för dess objektelement.
Den sort()
metod sorterar dess element enligt de värden som returneras av en anpassad sorteringsfunktion (compareName i detta fall).
Här,
- Egenskapsnamnen ändras till versaler med
toUpperCase()
metoden. - Om man jämför två namn i 1 ändras deras ordning.
- Om jämförelse av två namn resulterar i -1 eller 0 , lämnas deras ordning som den är.
Exempel 2: Sortera Array efter Property Age
// 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
((namn: "John", ålder: 22), (namn: "Sara", ålder: 24), (namn: "Jack", ålder: 27))
I ovanstående program används sort()
metoden för att sortera ett arrayelement efter åldersegenskapen.
För att jämföra åldersegenskapen för två objekt kan vi helt enkelt subtrahera dem.
- Om deras skillnad är ett negativt värde ändras deras ordning.
- Om deras skillnad är ett positivt värde lämnas ordningen som den är.