Il metodo Sort
Fa parte della sezione Logica e flusso del percorso JavaScript di Coddy. Lezione 57 di 65.
Il metodo sort() ti permette di ordinare gli elementi di un array sul posto e restituisce l'array ordinato. Per impostazione predefinita, ordina gli elementi come stringhe in ordine alfabetico crescente.
Ecco la sintassi di base:
array.sort([compareFunction])Esempio senza usare la funzione di confronto:
const fruits = ['banana', 'apple', 'orange', 'mango'];
fruits.sort();
console.log(fruits);
// ['apple', 'banana', 'mango', 'orange']ATTENZIONE: i numeri non vengono ordinati come previsto senza una funzione di confronto:
const numbers = [1, 30, 4, 21, 100000];
numbers.sort();
console.log(numbers);
// [1, 100000, 21, 30, 4] (ordinamento numerico errato)Per ordinare correttamente i numeri o implementare un ordinamento personalizzato, devi usare una funzione di confronto.
La funzione di confronto dovrebbe restituire:
- Un valore negativo se a deve precedere b
- Un valore positivo se b deve precedere a
- Zero se sono uguali
Ecco come ordineresti i numeri usando una funzione di confronto:
// Ordine crescente
const numbers = [1, 30, 4, 21, 100000];
numbers.sort((a, b) => a - b);
console.log(numbers); // [1, 4, 21, 30, 100000]// Ordine decrescente
numbers.sort((a, b) => b - a);
console.log(numbers); // [100000, 30, 21, 4, 1]Un altro esempio di come ordinare gli oggetti:
const people = [
{ name: 'John', age: 30 },
{ name: 'Alice', age: 25 },
{ name: 'Bob', age: 35 }
];
// Ordina per età (in ordine crescente)
people.sort((a, b) => a.age - b.age);// Ordina per nome (in ordine alfabetico, usa localeCompare())
people.sort((a, b) => a.name.localeCompare(b.name));Sfida
FacileCrea una funzione chiamata sortByLength che accetta un array di stringhe e restituisce un nuovo array con le stesse stringhe ordinate per lunghezza crescente. Se due stringhe hanno la stessa lunghezza, devono essere ordinate alfabeticamente.
Provalo tu
function sortByLength(arr) {
return arr.sort((a, b) => {
// Scrivi il codice qui
})
}Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.
Tutte le lezioni di Logica e flusso
1Le stringhe in dettaglio
Fondamenti delle stringheIterare sulle stringheTemplate literalsMetodi delle stringheRiepilogo - Intrecciatore di stringhe4JSON Parte 2
Iterare su JSONJSON annidatoOptional chaining in JSONCopia superficiale e profondaRipasso - Negozio di bicicletteRipasso - Sistema solare7Sistema di gestione della biblioteca
Panoramica del progettoAggiungere libri10Gestire il sistema del festival
Panoramica del progettoAggiungere film e sale2Array multidimensionali
Nozioni di base sugli array 2DAccesso agli elementi di un array 2DCicli annidati con array 2DRipasso: array 2DAddizione e sottrazione di matriciArray frastagliatiArray 3D e oltreSchemi comuni con array 2DRipasso: tutto sugli array5Insiemi Parte 1
Che cos'è un insieme?Iterare sugli insiemiAggiungere un elementoRimuovere un elementoVerificare se un elemento esisteDimensione e verifica del vuotoCopiare e svuotareRiepilogo - Nozioni di base sugli insiemi8Argomenti interessanti sugli array
Destrutturazione degli arraySintassi spread negli arrayArray sparsiRiepilogo - Laboratorio sugli array3JSON Parte 1
Che cos'è JSON?Verificare se una chiave esisteMetodi degli oggettiL'operatore spread Parte 1L'operatore spread Parte 2Rimuovere le chiaviRipasso - Manipolare le chiavi in JSONEsercitati da solo: Compilatore JavaScript online