У меня есть массив объектов и некоторые фильтры, такие как фильтр по имени, проекту и фазе. Каждый раз, когда пользователь выбирает значение из раскрывающегося списка, я сохраняю это значение в состоянии, а в состоянии я использую фильтры для фильтрации. массив данных, который работает нормально.
Теперь я добавил еще два фильтра fromDate и toDate, в которых также хранится выбранная дата в состоянии и из состояния, в котором я использую фильтр loda sh для фильтрации данных между двумя даты
this.entries = filter(val.datas, (data) => {
return data.date >= filteredKey.fromDate && data.date <= filteredKey.toDate;
});
Оба фильтра отлично работают по отдельности, но я попытался дать условие, как показано ниже
if (
this.selectedProject === 'all' &&
this.selectedPhase === 'all' &&
this.selectedUser === 'all' &&
this.fromDate === '' &&
this.toDate === ''
) {
this.entries = val.datas;
} else {
const filteredKey = omitBy(val.filters, (data) => data === 'all' || data === '');
if (filteredKey.fromDate && filteredKey.toDate) {
this.entries = filter(val.datas, (data) => {
return data.date >= filteredKey.fromDate && data.date <= filteredKey.toDate;
});
} else {
this.entries = filter(val.datas, filteredKey);
}
}
Теперь, когда пользователь выбирает все фильтры, как я могу отфильтровать даты как а также другие фильтры
{
"datas": [
{
"id": 1,
"key": "-M3W4y3sZRxdUCi3N_Vn",
"date": "2020-03-28",
"name": "smrithi",
"phase": "phase 2 ",
"project": "UNICORN",
"seconds": "01:00",
"task": "working...",
"uid": "G2gqEbdQzpcX7OdTZLFYflQrgjN2",
"workFrom": "Office"
},
{
"id": 2,
"key": "-M3WDDlCxSefdNiIYrz0",
"date": "2020-03-30",
"name": "smrithi",
"phase": "phase 001 ",
"project": "ANGRY BIRDS",
"seconds": "03:45",
"task": "edited",
"uid": "G2gqEbdQzpcX7OdTZLFYflQrgjN2",
"workFrom": "Office"
},
{
"id": 3,
"key": "-M3WI93d7HUlxTT3YfO8",
"date": "2020-03-28",
"name": "mee",
"phase": "phase 3",
"project": "Mojo Jojo",
"seconds": "11:03",
"task": "omg...",
"uid": "mvtZw2vSmvUYmD2WRvRtSNKpCUi2",
"workFrom": "Office"
},
{
"id": 4,
"key": "-M3fM6xMwtrr7R2k4EK9",
"date": "2020-03-30",
"name": "smrithi",
"phase": "Design",
"project": "The Mask",
"seconds": "03:00",
"task": "abcd",
"uid": "G2gqEbdQzpcX7OdTZLFYflQrgjN2",
"workFrom": "Office"
},
{
"id": 5,
"key": "-M3fMG44m-NThytsZwhk",
"date": "2020-03-30",
"name": "smrithi",
"phase": "phase 2 ",
"project": "Pigs",
"seconds": "02:01",
"task": "sdfghnm",
"uid": "G2gqEbdQzpcX7OdTZLFYflQrgjN2",
"workFrom": "Home"
},
{
"id": 6,
"key": "-M3fMqKRr3fZFZbtw5bF",
"date": "2020-03-30",
"name": "smrithi",
"phase": "phase 001 ",
"project": "FLINTSTONES",
"seconds": "01:01",
"task": "ihgv",
"uid": "G2gqEbdQzpcX7OdTZLFYflQrgjN2",
"workFrom": "Office"
}
],
"filters": {
"project": "all",
"phase": "all",
"name": "all",
"fromDate": "",
"toDate": ""
}
}