Вы можете создать массив, содержащий ваши фильтры, и использовать функцию redu * для его итерации:
const filteredItems = [
{
name: 'USA',
city: 'Washington',
code: '',
currency: '$'
},
{
name: 'Germany',
city: 'Berlin',
code: '',
currency: '€'
},
{
name: 'Turkey',
city: 'Istanbul',
code: '',
currency: '₺'
}
]
const getFilteredItems = (customText = '', currencySelected = '') => {
const myFilters = []
if (customText !== '') {
myFilters.push(x => x.name.includes(customText) || x.code.includes(customText) || x.city.includes(customText));
}
if (currencySelected !== '') {
myFilters.push(x => x.currency === currencySelected);
}
return filteredItems.filter(x => myFilters.reduce((acc, myFilter) => acc && myFilter(x), true))
}
console.log(getFilteredItems('Istan'))