Я пытаюсь отфильтровать результаты, используя объект со значениями true
или false
.Однако эти фильтры не являются взаимоисключающими, то есть может быть истинным более одного.
Показанный код позволяет работать только одному фильтру, я предполагаю, что мне нужно найти способ сделать showData
динамическим, но яЯ не слишком уверен, как.
const filters = {
letter: {
A: false,
B: false,
C: false,
D: false,
E: false
},
number: {
1: false,
2: false,
3: false,
4: false
},
//...
};
const data = [
{
letter: "A",
number: "1",
},
{
letter: "B",
number: "1",
},
{
letter: "B",
number: "2",
},
//...
],
const results = data.map((result, index) => {
let showData = true;
if (filters.letter.A) showData = result.letter === "A";
if (filters.letter.B) showData = result.letter === "B";
//...
return (showData && result)
})}
Пример ожидаемого вывода: если бы filters.letter.A
и filters.letter.B
были true
, тогда results
вернул бы массив объектов, соответствующих этим двум фильтрам..