Подскажите, как можно отрефакторить такой метод фильтрации:
filterTasks(tasks) {
switch (this.state.currentFilter) {
case TaskList.filters.description: {
const sortedTasks = tasks.sort((a, b) => {
return a.description > b.description;
});
if (this.state.isFilterReverse) {
return sortedTasks.reverse();
}
return sortedTasks;
}
case TaskList.filters.status: {
const sortedTasks = tasks.sort((a, b) => {
return a.status > b.status;
});
if (this.state.isFilterReverse) {
return sortedTasks.reverse();
}
return sortedTasks;
}
case TaskList.filters.task: {
const sortedTasks = tasks.sort((a, b) => {
return a.name > b.name;
});
if (this.state.isFilterReverse) {
return sortedTasks.reverse();
}
return sortedTasks;
}
case TaskList.filters.priority: {
const sortedTasks = tasks.sort((a, b) => {
return a.priority > b.priority;
});
if (this.state.isFilterReverse) {
return sortedTasks.reverse();
}
return sortedTasks;
}
default:
return tasks;
}
}
Передайте в качестве второго параметра field
(имя поля по которому нужна сортировка), тогда вам даже switch
- case
не нужен
filterTasks(tasks, field) {
const sortedTasks = tasks.sort((a, b) => {
return a[field] > b[field] ? 1 : -1;
});
if (this.state.isFilterReverse) {
return sortedTasks.reverse();
}
return sortedTasks;
}
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Не могу разобраться, как удалить class="open" у class="options"Когда раскрыт select при клике на другой select, тот который открыт, закрывался, а на который нажали,...
Верна ли эта запись? Сам понимаю, что скорее всего нетКак правильно оформить проверку на тип данных на чистом js?
Могу ли я использовать бесплатный АПИ, не нарушая пункт 4 "Условий использования API ЯндексКарт" https://tech