Массив c сортировкой объектов с подчеркиванием sortBy
У меня есть этот массив. Как использовать подчеркивание'_.sortBy ' сортировать его по дате начала?
[
{
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' },
}
]
2 ответа:
используйте функцию итератора, а не одну строку для свойства:
_.sortBy(arr, function(o) { return o.start.dateTime; })
Я сделал это так:
var sorted = _(list).sortBy( function (item) { return [new Date(item.effectiveDate).getTime(), item.batchId]; }), "batchId");
Если вы хотите, чтобы он опускался, то это то же самое, но *-1
var sorted = _(list).sortBy( function (item) { return [new Date(item.effectiveDate).getTime()*-1, item.batchId]; }), "batchId");
в этом примере я заказываю по двум полям, вы можете забыть о товаре.идентификатора партии batchid.
надеюсь, это кому-то поможет.