110 of 264 menu

Il metodo sort

Il metodo sort ordina un array in ordine lessicografico e restituisce l'array già modificato. È possibile specificare opzionalmente una funzione personalizzata per l'ordinamento.

Sintassi

array.sort([funzione]);

Esempio

Ordiniamo un array:

let arr = ['d', 'b', 'a', 'c']; console.log(arr.sort());

Risultato dell'esecuzione del codice:

['a', 'b', 'c', 'd']

Esempio

Ordiniamo un array di numeri:

let arr = [4, 1, 7, 2]; console.log(arr.sort());

Risultato dell'esecuzione del codice:

[1, 2, 4, 7]

Esempio

Aggiungiamo numeri all'array e ordiniamolo:

let arr = [1, 123, 2, 4, 111, 7]; console.log(arr.sort());

Come risultato dell'esecuzione del codice vedremo che i numeri non sono disposti in ordine crescente, ma in ordine lessicografico, cioè i numeri vengono confrontati tra loro come stringhe. In questo caso, il confronto avviene per ogni carattere, verificando se il codice del primo carattere è maggiore di quello adiacente, e così via. Risultato:

[1, 111, 123, 2, 4, 7]

Esempio

Ora ordiniamo l'array usando una funzione, in cui specifichiamo la condizione - se il primo parametro è maggiore del secondo, allora li scambiamo (per questo in return qualsiasi numero positivo). In caso contrario, lo scambio non è richiesto e specifichiamo 0 o qualsiasi numero negativo:

let arr = [1, 123, 2, 4, 111, 7]; arr.sort(function(a, b) { if (a > b) { return 1; } else { return -1; } }); console.log(arr);

Risultato dell'esecuzione del codice:

[1, 2, 4, 7, 111, 123]

Esempio

Per comodità, abbreviamo il codice nella nostra funzione dell'esempio precedente:

let arr = [1, 123, 2, 4, 111, 7]; arr.sort(function(a, b) { return a - b; }); console.log(arr);

Risultato dell'esecuzione del codice:

[1, 2, 4, 7, 111, 123]

Esempio

E ora, usando una funzione, ordiniamo l'array in ordine decrescente:

let arr = [1, 123, 2, 4, 111, 7]; arr.sort(function(a, b) { return b - a; }); console.log(arr);

Risultato dell'esecuzione del codice:

[123, 111, 7, 4, 2, 1]

Esempio

Ordiniamo un array di oggetti per la chiave 'one' in ordine crescente:

let arr = [ {one: 1, two: 2}, {one: 7, two: 1}, {one: 3, two: 3} ]; arr.sort(function(a, b) { return a.one - b.one; }); console.log(arr);

Risultato dell'esecuzione del codice:

[ {one: 1, two: 2}, {one: 3, two: 3}, {one: 7, two: 1} ]

Esempio

E ora ordiniamo l'array di oggetti per la chiave 'two':

let arr = [ {one: 1, two: 2}, {one: 7, two: 1}, {one: 3, two: 3} ]; arr.sort(function(a, b) { return a.two - b.two; }); console.log(arr);

Risultato dell'esecuzione del codice:

[ {one: 7, two: 1}, {one: 1, two: 2}, {one: 3, two: 3} ]

Esempio

Verifichiamo se l'array è cambiato dopo l'applicazione del metodo sort:

let arr = ['b', 'a', 'd', 'c']; let res = arr.sort(); console.log(arr);

Risultato dell'esecuzione del codice:

['a', 'b', 'c', 'd']

Vedi anche

  • il metodo filter,
    che permette di filtrare gli elementi dell'array
Italiano
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesia日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Utilizziamo i cookie per il funzionamento del sito, l'analisi e la personalizzazione. I dati vengono elaborati in conformità con la Politica sulla privacy.
accetta tutto personalizza rifiuta