In questo esempio imparerai a scrivere un programma JavaScript che ordinerà un array di oggetti in base ai valori delle proprietà.
Per comprendere questo esempio, è necessario conoscere i seguenti argomenti di programmazione JavaScript:
- JavaScript Array sort ()
- JavaScript Array
- Oggetti JavaScript
Esempio 1: ordina array per nome proprietà
// 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));
Produzione
((nome: "Jack", età: 25), (nome: "John", età: 24), (nome: "Sara", età: 24))
Nel programma precedente, il sort()
metodo viene utilizzato per ordinare un array in base alla proprietà name dei suoi elementi oggetto.
Il sort()
metodo ordina i suoi elementi in base ai valori restituiti da una funzione di ordinamento personalizzata (compareName in questo caso).
Qui,
- I nomi delle proprietà vengono modificati in maiuscolo utilizzando il
toUpperCase()
metodo. - Se il confronto di due nomi restituisce 1 , il loro ordine viene modificato.
- Se il confronto di due nomi restituisce -1 o 0 , il loro ordine viene lasciato così com'è.
Esempio 2: ordina array per età proprietà
// 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));
Produzione
((nome: "John", età: 22), (nome: "Sara", età: 24), (nome: "Jack", età: 27))
Nel programma precedente, il sort()
metodo viene utilizzato per ordinare un elemento dell'array in base alla proprietà age.
Per confrontare la proprietà età di due oggetti, possiamo semplicemente sottrarli.
- Se la loro differenza è un valore negativo, il loro ordine viene modificato.
- Se la loro differenza è un valore positivo, l'ordine viene lasciato così com'è.