CorsiJavaScript

Ordinare un array di JSON in Javascript

Quando lavoriamo con strutture di dati molto complesse non possiamo fare a meno di citare gli oggetti JSON. Una delle maggiori difficoltà che si possono riscontrare con gli array di JSON potrebbe essere l’ordinamento in quanto non è presente una funzione standard di ordinamento da poter applicare (contrariamente ai semplici array).

Quella che vi proporremo nell’articolo odierno è una funzione che vi consentirà di ordinare il vostro array JSON sia in modo crescente che decrescente individuando in maniera autonoma se sia un ordinamento di tipo numerico o alfanumerico.

L’algoritmo dunque genera inizialmente un oggetto la cui nomenclatura è “json” al suo interno avremo una pseudo-anagrafica degli utenti con le proprietà id, nome e cognome. Successivamente, richiamiamo la funzione “order” la quale richiede tre parametri json, column e type.

  • JSON, è l’oggetto da ordinare
  • COLUMN, è la proprietà per la quale si necessita l’ordinamento
  • TYPE, è la tipologia di ordinamento che si vuole effettuare (crescente o decrescente)

La funzione comprende in maniera autonoma il tipo di dato per il quale si vuole ordinare tramite la funzione predefinita (typeof) in modo impostare correttamente i parametri di ordinamento.

function order(json,column,type)
{
json.sort(function (a, b) {
    var textA;
    var textB;
    if (typeof (a[column]) == "number") {
        textA = a[column];
        textB = b[column];
    }
    else {
        textA = a[column].toUpperCase();
        textB = b[column].toUpperCase();
    }
    if (type.toUpperCase() == "DESC")
        return (textA > textB) ? -1 : (textA < textB) ? 1 : 0;
    else if (type.toUpperCase() == "ASC")
        return (textA < textB) ? -1 : (textA > textB) ? 1 : 0;
    });
    
   console.log(json);
}

var json = [
	{id: 1, nome: 'Francesco', cognome: 'Rossi'},
	{id: 2, nome: 'Mario', cognome: 'Giallo'},
	{id: 3, nome: 'Carmelo', cognome: 'Verde'}
];


this.order(this.json,"id","DESC")

LINK UTILI

Pagina Instagram: https://www.instagram.com/developer_sumo/
I nostri Corsi: https://www.developersumo.com/corsi/
Le nostre App su Play Store: https://play.google.com/store/apps/developer?id=Developer+Sumo

What's your reaction?

Excited
0
Happy
0
In Love
0
Not Sure
0
Silly
0

You may also like

More in:Corsi

Leave a reply

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *