我有这个数组。如何根据开始日期使用下划线'_.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' },
}
]
答案 0 :(得分:157)
使用迭代器函数,而不是属性的单个字符串:
_.sortBy(arr, function(o) { return o.start.dateTime; })
答案 1 :(得分:1)
我是这样做的:
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");
在这个例子中,我按两个字段排序,你可以忘记item.batchId。
希望这有助于某人。
答案 2 :(得分:0)
var sortedItem = _.sortBy(yourArrayName,[“ start”])