Как фильтровать массив объектов по массиву объектов с условиями.
Интерфейсы:
interface Person {
age: number;
available: boolean;
}
interface PersonFilter {
predicateFn(arg: Person): boolean;
}
Данные:
const persons = [
{
"age": 2,
"available": false
},
{
"age": 5,
"available": true
}
];
Условия для фильтрации:
const filters = [
{predicateFn: person => person.available},
{predicateFn: people => person.age > 2}
];
Как отфильтровать этот массив объектов, используя текущую структуру фильтров?
function getFilteredPersons(filters): Person[]{
return persons.filter( ?? );
}
Ожидаемый результат:
[
{
"age": 5,
"available": true
}
]