Фильтр динамического массива Angular6 (TypeScript) - PullRequest
0 голосов
/ 20 марта 2019

У меня вопрос по поводу динамически фильтруемого массива. Я делаю таблицу, и у меня есть разные варианты фильтрации.Например ;Только выбранный фильтр столбцов, фильтр выпадающего меню MultiSelect и вы хотите отфильтровать несколько столбцов. мой стол

Например;Напишите слово фильтра в фильтре бренда.Эта строка кода фильтрует мои данные.(veri = data. (на турецком языке)).

    public filter(str, i) {

      const collName = this.bizimKolon[i].Baslik; // Column Name
      this.veri = this.yedekVeri.filter(x => x[collName].toString().toLowerCase().includes(str.toLowerCase())); }

Я хочу отфильтровать отфильтрованные данные по годам, но не работает.И у меня есть еще проблема.Мы должны были отфильтровать Марку и Год.если слово фильтра, которое мы написали, находится в массиве, обновите мой массив и отобразите в таблицу.ХОРОШО.Нет проблем.Выбираем цвета в выпадающем меню.После мы хотим фильтровать по цветам (белый и зеленый).Как мы это делаем?Я не знаю, сколько данных поступит на фильтрацию.на данный момент нам нужен динамический фильтр.Пожалуйста, помогите мне.спасибо ..

1 Ответ

0 голосов
/ 20 марта 2019

вот мой пример фильтрации по многим входам:

  applyFilter() {
    let custs = this.ch.customers.filter((cust: Customer) => {
      return  (
          ((cust.name.toLowerCase().trim().indexOf(this.filters[0]) !== -1) || (!this.filters[0])) &&
          ((!this.filters[5]) || (cust.user.username.toLowerCase().trim().indexOf(this.filters[5]) !== -1)) &&
          ((!this.filters[2]) || (cust.state.name.toLowerCase().trim().indexOf(this.filters[2]) !== -1)) &&
          ((!this.filters[1]) || (cust.description.toLowerCase().trim().indexOf(this.filters[1]) !== -1)) &&
          ((!this.filters[3]) || (cust.last_mess.toLowerCase().trim().indexOf(this.filters[3]) !== -1))
      );
    });

    this.dataSource.data = custs;
    this.ch.customers_filter = this.dataSource.data;
    if (this.dataSource.paginator) {
      this.dataSource.paginator.firstPage();
    }
  }

Переменный фильтр - это массив строк.

...