Ordinare dinamicamente una lista di oggetti JavaScript con la libreria JSLinq

di Stefano Mostarda, in LINQ,

Molto spesso, in una pagina HTML abbiamo l'esigenza di ordinare gli elementi di una griglia la cui sorgente dati è un array JavaScript. In questo caso non dobbiamo invocare il server per ordinare gli elementi, ma dobbiamo ricorrere al codice JavaScript. La libreria JSLinq permette di ordinare gli oggetti grazie al metodo OrderBy. Inoltre, poiché il campo di ordinamento è dinamico, in quanto scelto dall'utente, possiamo sfruttare la natura dinamica del JavaScript per scrivere un solo metodo di ordinamento che valga per qualunque colonna come nel prossimo esempio.

function sort(list, columnName){
  var sortedList = JSLINQ(list)
    .OrderBy(function(item){ return item[columnName]; })
    .ToArray();
  redrawGrid(sortdList);
}

il metodo OrderBy ordina la lista mentre il nome del campo in base al quale ordinare viene specificato dal secondo parametro di input al metodo. Questo è possibile grazie al fatto che Javascript permette di accedere alle proprietà di un oggetto non solo specificandone il nome con la sintassi classica che usa il punto, ma anche con la sintassi tipica degli indexer ovvero specificando il nome tra parentesi quadre.

Commenti

Visualizza/aggiungi commenti

| Condividi su: Twitter, Facebook, LinkedIn

Per inserire un commento, devi avere un account.

Fai il login e torna a questa pagina, oppure registrati alla nostra community.

Approfondimenti

I più letti di oggi