Вот мой пример кода
data = [
{name: "Sam", age: 25, location: 'deleware', new_employee: true, shift: 'day'},
{name: "John", age: 45, location: 'new york', new_employee: false, shift: 'day'},
{name: "Tony", age: 65, location: 'california', new_employee: true, shift: 'evening'},
{name: "Bruce", age: 23, location: 'california', new_employee: true, shift: 'evening'},
{name: "Tom", age: 34, location: 'texas', new_employee: false, shift: 'day'},
{name: "Rob", age: 51, location: 'ohio', new_employee: false, shift: 'day'},
{name: "Jacob", age: 21, location: 'ohio', new_employee: false, shift: 'evening'},
{name: "Steve", age: 38, location: 'deleware', new_employee: false, shift: 'day'}
]
Если я хочу отфильтровать это, я могу сделать что-то вроде фильтрации всех вечерних смен:
data.filter(x=> x.shift=='evening') // gives me the filtered list
Если я хочу отфильтровать более одного условия, я могу сделать что-то вроде этого, чтобы отфильтровать нашу вечернюю смену, а не новый emp data.filter(x=> x.shift=='evening' && !x.new_employee) //gives me the exact one
Теперь проблема, с которой я столкнулся, заключается в том, что я не знаю, через какие фильтры пройдет пользователь. Я хочу построить этот фильтр динамически. В настоящее время я добиваюсь этого, используя несколько операторов if else для различных возможных комбинаций. комбинация включает
if name then that filter
else if name and age then another filter
else if name location then another filter
else if name and age and location another filter
and so on
Я знаю, что определенно есть лучший подход для этого. Любое предложение или указание в правильном направлении будет очень полезным.