Я пытаюсь понять, как работает js filter ().
У меня есть API, который возвращает что-то вроде этого:
[
{
"name": "Category 1",
"items": [
{
"name": "Vacancy item #1",
"location": "Los Angeles",
"overview": "Lorem ipsum",
"get_absolute_url": "/careers/vacancy-item-1/"
},
{
"name": "Vacancy item #2",
"location": "Los Angeles",
"overview": "Lorem ipsum",
"get_absolute_url": "/careers/vacancy-item-2/"
}
]
},
{
"name": "Category 2",
"items": [
{
"name": "Vacancy item #3",
"location": "Washington D.C",
"overview": "Lorem ipsum",
"get_absolute_url": "/careers/vacancy-item-3/"
}
]
}
]
Я хочу отфильтровать эти данные на основе выбранного значения формы. Я работаю над VUE. JS и Django.
А это мой JS код
filteredItems() {
let vacancycategories = this.listData,
city = this.city,
category = this.category
if (city && city.length > 0) {
vacancycategories = vacancycategories.filter((cat) => {
cat.items = cat.items.filter((vacancy) => {
return vacancy.location.indexOf(city) !== -1
})
return cat
})
}
if (category && category.length > 0) {
vacancycategories = vacancycategories.filter((cat) => {
return cat.name.indexOf(category) !== -1
})
}
return vacancycategories
}
Часть категории работает, как и ожидалось. Но когда я пытаюсь отфильтровать поля местоположения, это не работает должным образом. Первый выбранный параметр работает нормально, но затем, когда вы выбираете другой параметр, он возвращает пустой список.