U ovom ćete primjeru naučiti pisati JavaScript program koji će sortirati niz objekata po vrijednostima svojstava.
Da biste razumjeli ovaj primjer, trebali biste imati znanje o sljedećim temama programiranja JavaScript:
- Razvrstavanje JavaScript niza ()
- JavaScript niz
- JavaScript objekti
Primjer 1: Poredaj niz po nazivu svojstva
// 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));
Izlaz
((ime: "Jack", dob: 25), (ime: "John", dob: 24), (ime: "Sara", dob: 24))
U gornjem programu sort()
metoda se koristi za sortiranje niza po svojstvu imena njegovih objektnih elemenata.
sort()
Metoda sortira svoje elemente prema vrijednostima vratio običaj sortiranja funkciju (compareName u ovom slučaju).
Ovdje,
- Nazivi svojstava mijenjaju se u velika slova pomoću
toUpperCase()
metode. - Ako usporedba dva imena rezultira s 1 , tada se njihov redoslijed mijenja.
- Ako usporedba dva imena rezultira -1 ili 0 , njihov redoslijed ostaje nepromijenjen.
Primjer 2: Poredaj niz prema dobi svojstva
// 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));
Izlaz
((ime: "John", dob: 22), (ime: "Sara", dob: 24), (ime: "Jack", dob: 27))
U gornjem programu sort()
metoda se koristi za sortiranje elementa niza po svojstvu age.
Da bismo usporedili dobno svojstvo dvaju predmeta, možemo ih jednostavno oduzeti.
- Ako je njihova razlika negativna vrijednost, njihov redoslijed se mijenja.
- Ako je njihova razlika pozitivna vrijednost, redoslijed ostaje nepromijenjen.