我有一个包含值和方法的对象数组。其中一种方法返回我想要排序的数字。我还有一些布尔值,它们确定另一个排序顺序,无论返回的数字如何。
function reorder(){
var pinnedTasks = []
var regularTasks = []
var finishedTasks = []
for(var i of tasks){
if(i.pinned){
pinnedTasks.push(i)
} else if(i.done){
finishedTasks.push(i)
} else{
regularTasks.push(i)
}
}
}
这会将它们组织成类别,但不会重新排序。我想要一个包含pinnedTasks第一个、regularTasks下一个和最后一个的数组,所有这些都在自己的部分内finishedTasks重新排序。i.getDueDaysDiff()
具体来说,我希望它按正值递增(最小优先)的值排序i.getDueDaysDiff(),但负值递减(最大优先)排序。例如,[10, -5, -90, 2] 排序后应为 [2, 10, -5, -90]。
例如,如果我有
tasks = [
task: regular, getDueDaysDiff() = 1
task: regular, getDueDaysDiff() = -2
task: regular, getDueDaysDiff() = 12
task: regular, getDueDaysDiff() = -50
task: pinned, getDueDaysDiff() = -10
task: pinned, getDueDaysDiff() = 2
task: finished, getDueDaysDiff() = 5
]
重新排序应该是
tasks = [
task: pinned, getDueDaysDiff() = 2
task: pinned, getDueDaysDiff() = -10
task: regular, getDueDaysDiff() = 1
task: regular, getDueDaysDiff() = 12
task: regular, getDueDaysDiff() = -2
task: regular, getDueDaysDiff() = -50
task: finished, getDueDaysDiff() = 5
]
我应该如何处理这个问题?
紫衣仙女
相关分类