Я хочу сделать приложение, похожее на todoist . У меня есть все задачи в одном массиве, и я думаю, что лучший способ отобразить задачи за следующие 7 дней - это разбить данные на множество массивов за каждый день. Мое решение хорошо или я должен сделать что-то еще?
пример объекта задачи:
{
"archived": false,
"_id": "5e1dd882c1db5600176b09b8",
"name": "Do something",
"order": 1,
"user": "5e128d1eb2d8b90017efdccc",
"deadline": "01-02-2020"
}
моя функция:
export function sortTaskList(list) {
const sortedTasks = [
{
daysFromNow: 0,
tasks: []
},
{
daysFromNow: 1,
tasks: []
},
{
daysFromNow: 2,
tasks: []
},
{
daysFromNow: 3,
tasks: []
},
{
daysFromNow: 4,
tasks: []
},
{
daysFromNow: 5,
tasks: []
},
{
daysFromNow: 6,
tasks: []
},
{
daysFromNow: "later",
tasks: []
}
];
const today = new Date().getDate();
list.forEach(task => {
let days = task.deadline - today;
if (days > 6) {
sortedTasks[7].tasks.push(task);
} else {
sortedTasks[days].tasks.push(task);
}
});
sortedTasks.forEach(list => list.tasks.sort((a, b) => b.order - a.order));
return sortedTasks;
}