gpt4 book ai didi

javascript - Array.prototype.filter - 是否可以使用多个条件过滤多个条件? [JS、VueJS]

转载 作者:行者123 更新时间:2023-12-01 00:12:32 26 4
gpt4 key购买 nike

我在 VueJS 2.0/Nuxt 应用程序上有以下方法:

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']
}

我是否遗漏了某些内容,或者这无法按预期工作?

最佳答案

您可以使用includes()。数组和字符串包含此方法

applyFilters(filterCriteria) {
this.filtered = this.unfiltered.slice().filter((x) => {
// Zona
if (x.zona !== filterCriteria.zona) {
return false
}

// Bairro
if (!filterCriteria.bairro.includes(x.bairro)) {
return false
}

// Categoria
if (!filterCriteria.categoria.includes(x.categoria)) {
return false
}

return true
})
},

关于javascript - Array.prototype.filter - 是否可以使用多个条件过滤多个条件? [JS、VueJS],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59978297/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com