La funzione di confronto è dunque opzionale e dunque l'ordinamento avviene in base al valore dei caratteri Unicode.
Da zero ad eroe
Entra nel mondo della programmazione web: variabili, funzioni, array, DOM, eventi. Con esercizi pratici e progetti coinvolgenti.
- ⏱️ 8 ore di corso registrato
- 🧩 Più di 50 algoritmi risolti passo passo
- 🎯 Livello base — da zero ad eroe
- 💻 100% online, fruibile quando vuoi
Facciamo adesso degli esempi pratici di utilizzo.
sort JavaScript - primo esempio
Ordinare in ordine crescente un array di stringhe.
Quindi innanzitutto creiamo il nostro array di esempio:
let oggettiScolastici = ['matita','gomma','temperino'];
Dopo, con il metodo sort lo ordiniamo, visualizzando poi il risultato nella console del browser.
oggettiScolastici.sort();
console.log(oggettiScolastici);
Attenzione però! Se le iniziali dei nomi non sono tutte maiuscole o minuscole l'ordinamento può non essere quello desiderato.
Infatti le codifiche Unicode ad esempio della lettera a oppure A sono sequenze binarie differenti.
Inoltre, se proviamo ad ordinare un array formato da numeri, non avremo il risultato sperato. Ne parleremo nel dettaglio nel prossimo esempio.
sort JavaScript - secondo esempio
Ordiniamo un array di numeri con il metodo sort().
Innanzitutto forniamo il nostro array di numeri:
let numeri = [4,1,6,8,9,62];
Dopo proviamo a ordinarlo con il metodo sort di JavaScript:
numeri.sort();
console.log(numeri);
Il risultato ottenuto, visibile nella console del browser, sarà: Array(6) [ 1, 4, 6, 62, 8, 9 ]. Dunque l'ordinamento non è corretto.
Per poter utilizzare il metodo sort con i numeri allora è necessario utilizzare una funzione che faccia un confronto tra i numeri stessi.
Quindi in questo caso utilizziamo il metodo sort di JavaScript con questa sintassi: nomeArray.sort(funzione di confronto).
La funzione di confronto restituisce un valore negativo, zero oppure positivo. Questo valore dipende dal confronto tra due valori adiacenti.
function(a, b){return a - b}
Se a è minore di b allora il risultato è negativo e dunque a viene ordinato prima di b. Se a è maggiore di b il risultato è negativo e dunque b viene ordinato prima di a. Infine se è 0 vuol dire che a e b sono uguali e dunque è indifferente scrivere prima un numero o l'altro.
Ecco dunque il semplice algoritmo che permette di ordinare un array numerico.
let numeri = [4,1,6,8,9,62];
numeri.sort(function(a, b) {
return a - b;
});
console.log(numeri);
In questa lezione abbiamo parlato del metodo sort in JavaScript e come ordinare array di stringhe e di numeri. Nelle prossime lezioni affronteremo altri metodi sugli array in JavaScript.
Alcuni link utili
Indice tutorial JavaScript
Introduzione al tutorial JavaScript
Il linguaggio JavaScript
Come utilizzare JavaScript alert
Come utilizzare JavaScript confirm
Utilizzare JavaScript prompt
Variabili in JavaScript
JavaScript substring