我想使用“过滤器”方法在某些条件下过滤阵列。如果只有一个条件处于活动状态,则没有问题。但是,如果数组中的对象必须处于两个条件下,则会出现问题。

getFilteredItems() {
      let customText = this.filters.customTextFilter.trim();
      return this.filteredItems.filter((x) => {

        if (customText !== '') {
          return x.name.includes(customText) || x.code.includes(customText) || x.city.includes(customText);
        }

        if (this.filters.currencySelected !== '') {
          return x.currency === this.filters.currencySelected;
        }
        return true;
      })
    }


如果选择了两个条件,如何同时加入这两个条件?我还有3个条件要加入。因此,如果有人选择两个条件,则如何同时检查对象和在两个条件均为true时返回true?

谢谢

最佳答案

有一个result变量并在不满足任何条件时设置为false并返回结果

getFilteredItems() {

          let customText = this.filters.customTextFilter.trim();
          return this.filteredItems.filter((x) => {
            result=true;
            if (customText !== '') {
              result = result &&( x.name.includes(customText) || x.code.includes(customText) || x.city.includes(customText));
            }

            if (this.filters.currencySelected !== '') {
              result = result &&( x.currency === this.filters.currencySelected);
            }
            return result;
          })

        }

10-06 06:59