такая структура данных
[
{type: 1, date: june 2023}
{type: 2, date: june 2023}
{type: 1, date: august 2023}
{type: 2, date: novemer 2023}
]
Если пользователь выбрал type - 1 И 2, и дату между июнем и августом включительно. То в результат должны попасть только те элементы массива, которые подходят под фильтр, но при этом если type 1 подходит по дате, а type 2 с такой же датой не существует. То он не должен включаться в массив? Есть какой то паттерн для такого поиска?
просто фильтр по дате
Если просто отфильтровать по дате, он включит 3 элемент в результат. А правильно будет только первые два
Почему? по август же включительно
Ааа. Типо на дату должны быть все выбранные типы?
А какие ещё могут быть запросы в фильтрах? Есть только тип и дата и всё или что-то ещё может быть?
нужно сгруппировать по дате https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/groupBy на каждую группу фильтр: на каждый тип есть ли он в группе потом разложить группу с flat
Ещё что то будет, причём каждый из новых фильтров, должен работать по схеме выше. Например сейчас есть только тип и дата, а например можно добавить ещё локацию. И каждый новый фильтр, должен быть исключающим. Повторов быть не может, если имеется в виду полностью идентичные объекты
такое на беке надо делать, и не извращаться
Это да, но не всегда есть возможность
то есть локация тоже может быть вида А и Б, и в итоге надо будет только записи, для которых есть и такой тип, и такая дата, и локация на КАЖДУЮ комбинацию?
1. Сделать фильтрацию по простому условию на тип и дату локацию и тп 2. Пройтись циклом один раз и посчитать Map вида Map<key, Map<keyValue, Map<otherKey, Set<values>>>> чтобы посчитать значения для каждого ключа в ключе. Например, вида date: { june: { types: 1, 2 locations: a, b }, july: {} } location: { a: { dates: june, july types: 1, 2 }, b: {} } 3. Сделать уже итоговый фильтр с этим мапом, который проверит, что количество подключей для каждого - корректное
Нужно обмазговать) В любом случае большое спасибо
А что за формат в коде? JSON?
Обсуждают сегодня