JavaScript: ordinare gli elementi del DOM per data

JavaScript: ordinare gli elementi del DOM per data

Con JavaScript possiamo ordinare gli elementi del DOM per data.

La procedura è semplice: iteriamo sul set di elementi salvando in un array di oggetti il contenuto HTML degli elementi ed il timestamp della data ottenuto convertendo il testo dell'elemento che contiene la data in un oggetto Date. Lo step successivo è quello di usare il metodo sort() sull'array di oggetti sfruttando il timestamp come valore di riferimento (un numero intero).


'use strict';

const sortByDate = ( elements, order ) => {
    let arr = [];
    Array.prototype.forEach.call(elements, element => {
        let obj = {},
            time = element.querySelector('time').innerHTML,
            date = new Date( time.trim() ),
            timestamp = date.getTime();

        obj.html = element.outerHTML;
        obj.time = timestamp;

        arr.push( obj );
    });

    let sorted = arr.sort(( a, b ) => {

        if( order == 'ASC' ) {
            return a.time - b.time;
        } else {
            return b.time - a.time;
        }

    });

    return sorted;
};

Demo

JavaScript: sort by date

Torna su