web-dev-qa-db-fra.com

Tableau avec tri des objets avec Underscore sortBy

J'ai ce tableau. Comment utiliser le trait de soulignement '_SortBy' pour le trier en fonction de la date de début?

[
    { 
        id: 'oljw832021kjnb389xzll323jk',
        start: { dateTime: '2013-09-26T13:30:00-07:00' },
        end: { dateTime: '2013-09-26T14:30:00-07:00' },
    },
    { 
        id: 'ed7l5tmckdp0lm90nvr4is3d4c',
        start: { dateTime: '2013-09-26T15:30:00-07:00' },
        end: { dateTime: '2013-09-26T16:30:00-07:00' },
    },
    { 
        id: 'etmasdsackdp0kjl0nvrkopioqw',
        start: { dateTime: '2013-09-26T18:00:00-07:00' },
        end: { dateTime: '2013-09-26T19:00:00-07:00' },
    }
]
66
Jack Dre

Utilisez une fonction itérateur, pas une chaîne unique pour une propriété:

_.sortBy(arr, function(o) { return o.start.dateTime; })
158
Bergi

Je l'ai fait comme ça:

var sorted = _(list).sortBy(
                    function (item) {                        
                        return [new Date(item.effectiveDate).getTime(), item.batchId];
                    }), "batchId");

Si vous voulez le faire descendre alors c'est la même chose mais * -1

var sorted = _(list).sortBy(
                    function (item) {                        
                        return [new Date(item.effectiveDate).getTime()*-1, item.batchId];
                    }), "batchId");

Dans cet exemple, je commande par deux champs, vous pouvez oublier item.batchId.

J'espère que ça aide quelqu'un.

2
Sanchitos