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关于带条件的函数,可以在计算部分使用吗?