[JS] Ordinare un array di date
Questo articolo è molto vecchio e potrebbe essere obsoleto
Una peculiarità molto utile del metodo sort() è che può essere esteso per ordinare tipi arbitrari con l'uso di una funzione di due parametri, data proprio come argomento a sort().
function (a, b)
Questa funzione verrà chiamata da sort caricando in a e b gli elementi da confrontare. La funzione dovrà quindi restituire:
- 1 (o positivo) se il primo parametro è maggiore del primo
- 0 se sono uguali
- -1 (o negativo) se il primo parametro è minore del secondo
Quindi per confrontare un numero basterà creare questa funzione
function(a, b) { return a[0] - b[0] }
Mentre per confrontare date formattate in una certa maniera occorre un po' di lavoro in più, ma nulla di impossibile.
In questo codice io prendo la stringa, divido il giorno, il mese e l'anno, quindi creo una nuova classe Date caricandola con i dati divisi. Adesso il confronto lo faccio con la Unix time restituita dal motodo getTime() di Date.
function(a,b){
a = a[0].split("/");
b = b[0].split("/");
a=new Date(a[2],a[1],a[0]);
b=new Date(b[2],b[1],b[0]);
return a.getTime() - b.getTime()
}
Spero di essere stato utile a qualcuno
Dai il tuo parere, commenta questo articolo!
commenti su [JS] Ordinare un array di date
Lascia un commento