Javascript 如何创建正确的多重过滤器?
我试图显示游戏的项目,我想过滤我的输出结果。 我有多个过滤器面板 我不知道该怎么做才对。有些过滤器是类似的,也许它应该移动到功能 我尝试过这样做(通过名称和一个过滤器进行搜索),但我不确定这是不是最好的方法Javascript 如何创建正确的多重过滤器?,javascript,vue.js,Javascript,Vue.js,我试图显示游戏的项目,我想过滤我的输出结果。 我有多个过滤器面板 我不知道该怎么做才对。有些过滤器是类似的,也许它应该移动到功能 我尝试过这样做(通过名称和一个过滤器进行搜索),但我不确定这是不是最好的方法 filteredItems() { if (this.activeFilter && this.activeFilter != "all") { return this.items[this.activeFilter] .filter(
filteredItems() {
if (this.activeFilter && this.activeFilter != "all") {
return this.items[this.activeFilter]
.filter(
item =>
item.name.toLowerCase().indexOf(this.search.toLowerCase()) !== -1
)
.filter(item => {
if (this.minLvl !== "" && this.maxLvl !== "") {
if (
item.itemLevel >= this.minLvl &&
item.itemLevel <= this.maxLvl
)
return true;
} else if (this.minLvl == "" && this.maxLvl !== "") {
if (item.itemLevel <= this.maxLvl) return true;
} else if (this.minLvl !== "" && this.maxLvl == "") {
if (item.itemLevel >= this.minLvl) return true;
} else {
return true;
}
});
}
filteredItems(){
if(this.activeFilter&&this.activeFilter!=“全部”){
返回this.items[this.activeFilter]
.过滤器(
项目=>
item.name.toLowerCase().indexOf(this.search.toLowerCase())!=-1
)
.filter(项目=>{
if(this.minLvl!==“”&this.maxLvl!==“”){
如果(
item.itemLevel>=this.minLvl&&
item.itemLevel链接筛选器可以。但是,您可以编写一个筛选器并在该委托中调用函数以匹配item:items.filter(matchSearchCriteria)
。您的条件不容易理解,请简化它。@fiveelements about conditions。它应该是这样工作的:如果没有设置min/max lvl,我显示的项目取决于级别,加上没有级别的项目property@fiveelements关于带条件的函数,可以在计算部分使用吗?