У меня есть следующий метод для VueJS 2.0 / Nuxt Application:
applyFilters(filterCriteria) {
this.filtered = this.unfiltered.slice().filter((x) => {
// Zona
if (x.zona !== filterCriteria.zona) {
return false
}
// Bairro
for (const key in filterCriteria.bairro) {
if (x.bairro !== filterCriteria.bairro[key]) {
return false
}
}
// Categoria
for (const key in filterCriteria.categoria) {
if (x.categoria !== filterCriteria.categoria[key]) {
return false
}
}
return true
})
},
Что я пытаюсь достичь, так это каким-то образом отфильтровать несколько условий, основанных также на нескольких критериях. Это достижимо с .filter()
?
Когда бы я ни применял первый критерий, он работал нормально, а также, когда я применяю второй критерий, он будет работать также, но всякий раз, когда я применяю второй элемент ко второму критерию, он просто не удается отфильтровать и вернуться к false
каждый раз.
Это работает:
filterCriteria: {
zona: 'Germany',
bairro: ['Berlin'],
categoria: ['City']
}
Это не будет:
filterCriteria: {
zona: 'Germany',
bairro: ['Berlin', 'Munich'],
categoria: ['City']
}
Я что-то упустил или это не будет работать, как ожидалось?