【发布时间】:2022-01-26 00:02:35
【问题描述】:
我想按状态对任务列表进行排序,例如,状态为“活动”的任务应按照已完成的任务进行分组,然后其他状态的任务应按添加顺序显示:
它应该显示如下内容:
const taskToShows = [
{task: "task7", status: "active"},
{task: "task6", status: "active"},
{task: "task5", status: "active"},
{task: "task8", status: "completed"},
{task: "task4", status: "completed"},
{task: "task1", status: "pending"},
{task: "task2", status: "other status"},
{task: "task3", status: "progress"},
]
我的方法是使用 sort() 我可以先排序,但随后它排序了所有任务,只需要顶部的活动和已完成的任务以及用户添加的顺序中的所有其他任务
if(this.status === 'active' || this.status === 'completed'){
this.tasksToShow = this.tasksList.sort((a, b) => (a.status.toLowerCase() >
b.status.toLowerCase()) ? 1 : (a.status.toLowerCase() === b.status.toLowerCase() )
? ((a.status > b.status) ? 0 : -1) : -1 )
}
【问题讨论】:
标签: javascript sorting