Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Impara Ordinamento degli array con il metodo sort() | Metodi Avanzati degli Array e Trasformazioni
Strutture Dati JavaScript

bookOrdinamento degli array con il metodo sort()

sort()

Il metodo sort() riordina gli elementi di un array in loco e restituisce l'array aggiornato. Per impostazione predefinita, l'ordinamento funziona bene con le stringhe ma può produrre risultati inattesi con i numeri.

Comportamento di ordinamento predefinito

L'ordinamento predefinito si applica senza problemi agli array di stringhe, ma gli array numerici possono presentare delle difficoltà. Analizziamo alcuni esempi per chiarire questo comportamento:

123
const numbers = [51, 12, 43, 24, 65, 36]; numbers.sort(); console.log(numbers); // Output: 12, 24, 36, 43, 51, 65
copy

In questo esempio, l'array di numeri viene ordinato in ordine crescente, apparentemente in modo semplice. Tuttavia, emergono delle sfumature nell'illustrazione successiva:

123
const numbers = [34, 25, 19, 1, 92, 2, 3]; numbers.sort(); console.log(numbers); // Output: 1, 19, 2, 25, 3, 34, 92
copy

Il metodo sort() tratta gli elementi come stringhe per impostazione predefinita, il che può portare a risultati inattesi. Ad esempio, 19 viene ordinato prima di 2 e 25 prima di 3. La soluzione consiste nel personalizzare il processo di ordinamento.

Ordini di Ordinamento Personalizzati

Per adattare l'ordinamento a esigenze specifiche, si utilizza una funzione di callback. Questa funzione, spesso chiamata funzione di confronto, determina la logica di ordinamento. Esploriamo l'ordinamento personalizzato sia per numeri che per stringhe. Sintassi di base:

array.sort((a, b) => {
  // Callback body
});
  • a è considerato come il primo elemento;
  • b è considerato come il secondo elemento.

Ordinare Numeri

In questo caso, la funzione di confronto determina l'ordine crescente o decrescente in base alla relazione tra gli elementi a e b.

1234567
const numbers = [34, 25, 19, 1, 92, 2, 3]; const ascendingNumbers = [...numbers].sort((a, b) => a - b); console.log(ascendingNumbers); // Output: 1, 2, 3, 19, 25, 34, 92 const descendingNumbers = [...numbers].sort((a, b) => b - a); console.log(descendingNumbers); // Output: 92, 34, 25, 19, 3, 2, 1
copy

Ordinare le stringhe

Il metodo localeCompare() facilita l'ordinamento alfabetico, consentendo la personalizzazione sia per l'ordine crescente che decrescente.

1234567
const employees = ["Antonia", "Rene", "Casey", "Lorraine", "Shelia"]; const inAlphabetOrder = [...employees].sort((a, b) => a.localeCompare(b)); console.log(inAlphabetOrder); // Antonia, Casey, Lorraine, Rene, Shelia const inReversedOrder = [...employees].sort((a, b) => b.localeCompare(a)); console.log(inReversedOrder); // Shelia, Rene, Lorraine, Casey, Antonia
copy

1. Qual è una caratteristica chiave del metodo sort()?

2. Nel comportamento predefinito del metodo sort(), come vengono trattati gli elementi?

3. Nell'esempio seguente, quale sarà l'output?

question mark

Qual è una caratteristica chiave del metodo sort()?

Select the correct answer

question mark

Nel comportamento predefinito del metodo sort(), come vengono trattati gli elementi?

Select the correct answer

question mark

Nell'esempio seguente, quale sarà l'output?

Select the correct answer

Tutto è chiaro?

Come possiamo migliorarlo?

Grazie per i tuoi commenti!

Sezione 5. Capitolo 7

Chieda ad AI

expand

Chieda ad AI

ChatGPT

Chieda pure quello che desidera o provi una delle domande suggerite per iniziare la nostra conversazione

bookOrdinamento degli array con il metodo sort()

Scorri per mostrare il menu

sort()

Il metodo sort() riordina gli elementi di un array in loco e restituisce l'array aggiornato. Per impostazione predefinita, l'ordinamento funziona bene con le stringhe ma può produrre risultati inattesi con i numeri.

Comportamento di ordinamento predefinito

L'ordinamento predefinito si applica senza problemi agli array di stringhe, ma gli array numerici possono presentare delle difficoltà. Analizziamo alcuni esempi per chiarire questo comportamento:

123
const numbers = [51, 12, 43, 24, 65, 36]; numbers.sort(); console.log(numbers); // Output: 12, 24, 36, 43, 51, 65
copy

In questo esempio, l'array di numeri viene ordinato in ordine crescente, apparentemente in modo semplice. Tuttavia, emergono delle sfumature nell'illustrazione successiva:

123
const numbers = [34, 25, 19, 1, 92, 2, 3]; numbers.sort(); console.log(numbers); // Output: 1, 19, 2, 25, 3, 34, 92
copy

Il metodo sort() tratta gli elementi come stringhe per impostazione predefinita, il che può portare a risultati inattesi. Ad esempio, 19 viene ordinato prima di 2 e 25 prima di 3. La soluzione consiste nel personalizzare il processo di ordinamento.

Ordini di Ordinamento Personalizzati

Per adattare l'ordinamento a esigenze specifiche, si utilizza una funzione di callback. Questa funzione, spesso chiamata funzione di confronto, determina la logica di ordinamento. Esploriamo l'ordinamento personalizzato sia per numeri che per stringhe. Sintassi di base:

array.sort((a, b) => {
  // Callback body
});
  • a è considerato come il primo elemento;
  • b è considerato come il secondo elemento.

Ordinare Numeri

In questo caso, la funzione di confronto determina l'ordine crescente o decrescente in base alla relazione tra gli elementi a e b.

1234567
const numbers = [34, 25, 19, 1, 92, 2, 3]; const ascendingNumbers = [...numbers].sort((a, b) => a - b); console.log(ascendingNumbers); // Output: 1, 2, 3, 19, 25, 34, 92 const descendingNumbers = [...numbers].sort((a, b) => b - a); console.log(descendingNumbers); // Output: 92, 34, 25, 19, 3, 2, 1
copy

Ordinare le stringhe

Il metodo localeCompare() facilita l'ordinamento alfabetico, consentendo la personalizzazione sia per l'ordine crescente che decrescente.

1234567
const employees = ["Antonia", "Rene", "Casey", "Lorraine", "Shelia"]; const inAlphabetOrder = [...employees].sort((a, b) => a.localeCompare(b)); console.log(inAlphabetOrder); // Antonia, Casey, Lorraine, Rene, Shelia const inReversedOrder = [...employees].sort((a, b) => b.localeCompare(a)); console.log(inReversedOrder); // Shelia, Rene, Lorraine, Casey, Antonia
copy

1. Qual è una caratteristica chiave del metodo sort()?

2. Nel comportamento predefinito del metodo sort(), come vengono trattati gli elementi?

3. Nell'esempio seguente, quale sarà l'output?

question mark

Qual è una caratteristica chiave del metodo sort()?

Select the correct answer

question mark

Nel comportamento predefinito del metodo sort(), come vengono trattati gli elementi?

Select the correct answer

question mark

Nell'esempio seguente, quale sarà l'output?

Select the correct answer

Tutto è chiaro?

Come possiamo migliorarlo?

Grazie per i tuoi commenti!

Sezione 5. Capitolo 7
some-alt