Фильтровать данные таблицы - PullRequest
0 голосов
/ 05 июля 2019

Я хочу отфильтровать таблицу на основе нескольких условий. Ниже приведен пример изображения sample

код, который я пробовал

    this.reportData.filter(it => {
        if (
            it.startTimeFilter.includes(this.startdatefilter) &&
            it.endTimeFilter.includes(this.enddatefilter) &&
            it.status.toLowerCase().includes(this.status)
        ) {
            this.filteredData.push(it);
        }
    });

Ответы [ 2 ]

1 голос
/ 05 июля 2019

Хорошо, я могу дать вам подсказку для достижения этой цели, так как у меня нет полного кода.Убедитесь, что this.reportData никогда не изменяется, так как нам нужны все данные для фильтрации


 applyFiltering(){
    this.dataToShowOnUI = getFilteredData();
 }

 getFilteredData(): any[]{
    let filteredData = JSON.parse(JSON.stringify(this.reportData));
    if(this.startdatefilter && this.enddatefilter){
      filteredData = filteredData.filter(it => 
            it.startTimeFilter.includes(this.startdatefilter) &&
            it.endTimeFilter.includes(this.enddatefilter) 
      );
    }
    if(this.status){
     filteredData = filteredData.filter(data => data.status.toLowerCase().includes(this.status))
    }
    if(this.operatingSystem){
        filteredData = filteredData.filter(data => data.operatingSystem.toLowerCase().includes(this.operatingSystem))
    }
    // and so on ...
    return filteredData;
 }

0 голосов
/ 05 июля 2019

Я предполагаю, что this.reportData и this.filteredData являются массивами.Тогда правильный способ использования метода filter следующий:

this.filteredData = this.reportData.filter(it => 
    it.startTimeFilter.includes(this.startdatefilter) &&
    it.endTimeFilter.includes(this.enddatefilter) &&
    it.status.toLowerCase().includes(this.status)
);

По существу, параметр фильтра должен быть функцией, которая возвращает логическое значение (которое сообщает, должен ли элемент сохраняться как результат),и возвращает отфильтрованный новый массив без изменения заданного.

...