пишу поиск объектов с несколькими фильтрами. Два фильтра выполняют следующие проверки:
1) кто-то назначен к случаю (caseWorkers) 2) присутствует ли этот тип документа (resoStatus)
Я написал лицевую часть фильтр, который работает следующим образом:
если пользователь щелкает имя для поиска caseWorkers ("firstName lastName"), он проходит через него и завершает строку с этим именем в массиве, называемом фильтрами на странице, где поиск выполняется
, если пользователь нажимает на документы, которые он помещает в тот же массив строк «hasRepresentation» «hasTaxForms».
Модель, в которой выполняется поиск (перспектива), выглядит примерно так:
{
fullName: '',
resoStatus:{
representation:[],
federalReso:[],
},
caseWorkers:{
originators:[],
taxPreparers:[]
}
}
, поэтому есть массив объектов, который выглядит так, и массив строк, называемых фильтрами с именами или истинными ложными оценками.
filters = ["Mickey Gray", "hasRepresentation"]
, поэтому мне нужно сопоставить фильтры ищите определенные аспекты строки / has / or '', а затем отображайте фильтрацию перспектив по подмассивам в caseWorkers и resoStatus.
У меня есть У меня очень четкое понимание того, что я хочу, но я не могу понять, как расположить все различные массивы, которые необходимо учитывать. Вот самая последняя версия кода реакции.
{(filters.length > 0 && prospects.length > 0 && prospect.caseWorkers) ||
(filters.length > 0 && prospects.length > 0 && prospect.resoStatus)
? prospects.filter(
(prospects, filters, i) =>
prospects[i].caseWorkers.originators.name ===
filters
.map((filter) => filter.includes(" "))
.map((filtered) => (
<ProspectItem
key={filtered._id}
filtered={filtered}
prosp={prosp}
/>
))
)
: prospects.map((prospect) => (
<ProspectItem
key={prospect._id}
prospect={prospect}
prosp={prosp}
/>
))}
это еще один метод, который я рассмотрел для сопоставления фильтров, чтобы найти часть потенциальных клиентов.
{(filters.length > 0 && prospects.length > 0 && prospect.caseWorkers) ||
(filters.length > 0 && prospects.length > 0 && prospect.resoStatus)
? filters.map((filter) =>
prospects
.find((prospect) => prospect.caseWorkers.name === filter)
.map((filtered) => (
<ProspectItem
key={filtered._id}
filtered={filtered}
prosp={prosp}
/>
))
)
: prospects.map((prospect) => (
<ProspectItem
key={prospect._id}
prospect={prospect}
prosp={prosp}
/>
))}
как сложить несколько фильтрует и оценивает значения для карты в нескольких разделах одного и того же объекта.