📄 Ordina array
Descrizione della domanda
Dato un array di numeri, usa la funzione sort per ordinare l'array. Fornisci soluzioni per entrambi gli scenari:
- Ordine crescente (dal più piccolo al più grande)
- Ordine decrescente (dal più grande al più piccolo)
Ordinamento crescente
const numbers = [10, 5, 50, 2, 200];
// Using a comparison function
numbers.sort(function (a, b) {
return a - b;
});
console.log(numbers); // [2, 5, 10, 50, 200]
Ordinamento decrescente
const numbers = [10, 5, 50, 2, 200];
numbers.sort(function (a, b) {
return b - a;
});
console.log(numbers); // [200, 50, 10, 5, 2]
Inserimento intenzionale di stringhe
const mixedNumbers = [10, '5', 50, '2', 200];
mixedNumbers.sort(function (a, b) {
return Number(a) - Number(b);
});
console.log(mixedNumbers); // ['2', '5', 10, 50, 200]
Tuttavia, questa soluzione non può gestire stringhe che non possono essere convertite in numeri, come 'iphone', 'ipad' ecc. Queste stringhe vengono convertite in NaN e, anche se possono finire in fondo all'array ordinato, browser diversi possono produrre risultati diversi. In questi casi, valuta di usare prima filter per ripulire e ristrutturare l'array.
Ordinamento di oggetti
const mockArray = [
{ type: 'a', label: 1 },
{ type: 'a', label: 2 },
{ type: 'c', label: 1 },
{ type: 'c', label: 3 },
{ type: 'b', label: 2 },
];