Ebben a példában megtanul olyan JavaScript programot írni, amely objektumok tömbjét tulajdonságértékek szerint rendezi.
A példa megértéséhez ismernie kell a következő JavaScript programozási témákat:
- JavaScript tömb rendezés ()
- JavaScript tömb
- JavaScript objektumok
1. példa: A tömb rendezése tulajdonságnév szerint
// 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));
Kimenet
((név: "Jack", életkor: 25), (név: "John", életkor: 24), (név: "Sara", életkor: 24))
A fenti programban a sort()
metódust egy tömb objektumelemeinek névtulajdonsága szerinti rendezésére használják.
A sort()
módszer elemeit az egyedi rendezési függvény (ebben az esetben összehasonlítNév) által visszaadott értékek szerint rendezi.
Itt,
- A tulajdonságnevek nagybetűsre változnak a
toUpperCase()
módszerrel. - Ha két név összehasonlítása 1-et eredményez , akkor azok sorrendje megváltozik.
- Ha két név összehasonlítása -1 vagy 0 értéket eredményez , akkor a sorrendjük a jelenlegi marad.
2. példa: A tömb rendezése tulajdonkor szerint
// 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));
Kimenet
((név: "John", életkor: 22), (név: "Sara", életkor: 24), (név: "Jack", életkor: 27))
A fenti programban a sort()
metódust egy tömb elem rendezésére használják az age tulajdonság alapján.
Két objektum kor tulajdonságának összehasonlításához egyszerűen kivonhatjuk őket.
- Ha különbségük negatív érték, akkor sorrendjük megváltozik.
- Ha különbségük pozitív érték, akkor a sorrendet úgy hagyjuk, ahogy van.