Ordinamento 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ò comportarsi in modo inatteso con i numeri.
Comportamento di ordinamento predefinito
Il metodo sort() converte gli elementi in stringhe per impostazione predefinita e li confronta secondo l'ordine Unicode. Per questo motivo funziona naturalmente con le stringhe, ma gli array numerici possono produrre risultati inattesi a meno che non venga fornita una funzione di confronto.
123const numbers = [1, 2, 10, 21]; numbers.sort(); console.log(numbers); // Output: 1, 10, 2, 21
Per ordinare correttamente i numeri, utilizzare una funzione di confronto:
1234const numbers = [1, 2, 10, 21]; const ascending = [...numbers].sort((a, b) => a - b); console.log(ascending); // Output: 1, 2, 10, 21
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.
1234567const 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
Ordinare Stringhe
Il metodo localeCompare() consente l'ordinamento alfabetico, permettendo la personalizzazione sia per l'ordine crescente che decrescente.
1234567const 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
1. Qual è una caratteristica chiave del metodo sort()?
2. Nel comportamento di ordinamento predefinito del metodo sort(), come tratta gli elementi?
3. Nell'esempio seguente, quale sarà l'output?
Grazie per i tuoi commenti!
Chieda ad AI
Chieda ad AI
Chieda pure quello che desidera o provi una delle domande suggerite per iniziare la nostra conversazione
Fantastico!
Completion tasso migliorato a 2.27
Ordinamento 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ò comportarsi in modo inatteso con i numeri.
Comportamento di ordinamento predefinito
Il metodo sort() converte gli elementi in stringhe per impostazione predefinita e li confronta secondo l'ordine Unicode. Per questo motivo funziona naturalmente con le stringhe, ma gli array numerici possono produrre risultati inattesi a meno che non venga fornita una funzione di confronto.
123const numbers = [1, 2, 10, 21]; numbers.sort(); console.log(numbers); // Output: 1, 10, 2, 21
Per ordinare correttamente i numeri, utilizzare una funzione di confronto:
1234const numbers = [1, 2, 10, 21]; const ascending = [...numbers].sort((a, b) => a - b); console.log(ascending); // Output: 1, 2, 10, 21
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.
1234567const 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
Ordinare Stringhe
Il metodo localeCompare() consente l'ordinamento alfabetico, permettendo la personalizzazione sia per l'ordine crescente che decrescente.
1234567const 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
1. Qual è una caratteristica chiave del metodo sort()?
2. Nel comportamento di ordinamento predefinito del metodo sort(), come tratta gli elementi?
3. Nell'esempio seguente, quale sarà l'output?
Grazie per i tuoi commenti!