JavaScript Array sort()

Definizione e uso

sort() Il metodo ordina gli elementi dell'array.

L'ordine di ordinamento può essere alfabetico o numerico, e può essere in ordine crescente (in alto) o decrescente (in basso).

Per impostazione predefinita,sort() Il metodo ordina i valori come stringhe in ordine alfabetico e crescente.

Questo si applica anche alle stringhe ("Apple" appare prima di "Banana"). Tuttavia, se i numeri vengono ordinati come stringhe, "25" è maggiore di "100" perché "2" è maggiore di "1".

Per questo motivo,sort() Il metodo produce risultati imprecisi durante l'ordinamento dei numeri.

Puoi risolvere questo problema fornendo una 'funzione di confronto' (vedi di seguito 'Valori dei parametri').

Nota:sort() Il metodo cambia l'array originale.

Esempio

Esempio 1

Ordina l'array:

var fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits.sort();

Prova personalmente

Esempio 2

In ordine crescente, l'array dei numeri viene ordinato:

var points = [40, 100, 1, 5, 25, 10];
points.sort(function(a, b){return a-b});

Prova personalmente

Esempio 3

In ordine decrescente, l'array dei numeri viene ordinato:

var points = [40, 100, 1, 5, 25, 10];
points.sort(function(a, b){return b-a});

Prova personalmente

Esempio 4

Ottieni il valore minimo dell'array:

var points = [40, 100, 1, 5, 25, 10];
points.sort(function(a, b){return a-b});    // Ordina i numeri dell'array in ordine crescente
// Il primo elemento dell'array (points[0]) è ora il valore minimo

Prova personalmente

Esempio 5

Ottieni il valore massimo dell'array:

var points = [40, 100, 1, 5, 25, 10];
points.sort(function(a, b){return b-a});    // Ordina i numeri dell'array in ordine decrescente
// Il primo elemento dell'array (points[0]) è ora il valore massimo

Prova personalmente

Esempio 6

Ottieni il valore massimo dell'array:

const points = [40, 100, 1, 5, 25, 10];
// Ordina i numeri in ordine crescente:
points.sort(function(a, b){return a-b});
// points[points.length-1] = 100 (valore massimo)

Prova personalmente

Esempio 7

Ordina l'array in ordine alfabetico e poi inverte l'ordine di ordinamento (decrescente):

var fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits.sort();
fruits.reverse();

Prova personalmente

Sintassi

array.sort(compareFunction)

Valore del parametro

Parametro Descrizione
compareFunction

Opzionale. Definire una funzione che definisce un ordine di ordinamento alternativo. La funzione deve restituire un valore negativo, zero o positivo in base ai parametri, ad esempio:

  • function(a, b){return a-b}

Quando il metodo sort() confronta due valori, invia i valori alla funzione di confronto e ordina i valori in base al valore restituito (negativo, zero, positivo).

Esempio:

Quando si confrontano 40 e 100, la metodo sort() chiama la funzione di confronto(40,100).

La funzione calcola 40-100 e restituisce -60 (valore negativo).

La funzione sort() ordina 40 come valore minore di 100.

Dettagli tecnici

Ritorno di valore: Oggetto Array, i cui elementi sono ordinati.
Versione JavaScript: ECMAScript 1

Supporto del browser

Tutti i browser lo supportano completamente sort() Metodo:

Chrome IE Edge Firefox Safari Opera
Chrome IE Edge Firefox Safari Opera
Supportato Supportato Supportato Supportato Supportato Supportato

Pagine correlate

Tutorial:JavaScript Array

Tutorial:Array JavaScript Const

Tutorial:Metodi degli array JavaScript

Tutorial:Ordinamento degli array JavaScript

Tutorial:Iterazione degli array JavaScript

Manuale:Metodo reverse() dell'Array JavaScript