我正在构建一个任务列表系统,但就我而言,我无法找到一种方法来对具有开始和结束日期的对象数组进行排序。
我希望按任务的创建日期默认任务列表,并首先处理最旧的任务。
我不想开始任务,直到它至少在开始日期。
我想在结束日期前一天完成一项任务。
使用underscorejs很容易按开始日期对日期排序:
_.sortBy(arr, function(task) {
return task.start.dateTime;
})
但是我如何考虑上下文开始日期和结束日期,同时仍然试图根据创建日期对其进行基本排序?
答案 0 :(得分:0)
阅读http://underscorejs.org/提供的doco sortBy表示它是一种稳定的排序算法(意味着如果值相等,它不会在多个排序上抛出顺序。请参阅http://en.wikipedia.org/wiki/Sorting_algorithm),这样您就可以安全地链接排序上下文:
var sortedArray = _(arr).chain()
.sortBy(function(task) {
return task.created.dateTime;
})
.sortBy(function(task) {
return task.start.dateTime;
})
.sortBy(function(task) {
return task.end.dateTime;
})
.value();
你试过吗?你能提供一些样本数据来测试吗?