Я создаю приложение в Vue, которое будет фильтровать элементы в объекте JSON. У меня возникают проблемы с добавлением фильтра типа флажка в это приложение, потому что я хочу, чтобы фильтр флажка запускался, только если установлен хотя бы один флажок, и не запускался, если не установлен ни один. Итак, в настоящее время у меня есть:
computed: {
filteredJobs: function(){
var filteredList = this.jobs.filter(el=> {
return el.title.toUpperCase().match(this.search.toUpperCase())
&& el.employmentType.toUpperCase().match(this.selectedJobType.toUpperCase())
&& el.customText12.toUpperCase().match(this.selectedLocation.toUpperCase())
&& el.dateAdded >= this.checkedDate
});
if (!this.checkedServiceAreas.length) {
return filteredList;
}else{
return filteredList.filter(job => this.checkedServiceAreas.includes(job.categories.data.map(({name}) => name).join(' ')));
}
}
}
Таким образом, я делаю большую часть своей фильтрации, используя выпадающие меню select, что упрощает использование метода match для фильтрации объекта JSON, но для флажков это немного сложнее, поскольку их можно многократно проверять. То, как я в настоящее время настроил это, находится в операторе IF, чтобы фильтровать только флажок selectedServiceAreas, если установлен хотя бы один флажок. Если нет, просто запустите мой обычный отфильтрованный метод.
То, что я пытаюсь сделать, - это найти способ включить мое выражение IF в мой метод фильтра без необходимости делать это в два этапа, как я делал выше.