Object filter not working beacuse of null value in column

Viewed 297

I want to filter out object data based on value from an array. The below snippet work fine when no null value, but in case of null value in column it's not working.

Here is StackBlitz

filter() {
    this.dataSource.data = ELEMENT_DATA.filter(({ name }) =>
      this.filterArray.some(n => name.toLowerCase().includes(n.toLowerCase()))
    );
  }
2 Answers
filter() {
    this.dataSource.data = ELEMENT_DATA.filter(({ name }) =>
      this.filterArray.some(n => name ? name.toLowerCase().includes(n.toLowerCase()) : "")
    );
  }

How about filtering the non null data first then apply your filter on top of it.

filter() {
    this.dataSource.data = ELEMENT_DATA
    .filter(({ name }) => name != null || name != undefined )
    .filter(({ name }) =>
      this.filterArray.some(n => name.toLowerCase().includes(n.toLowerCase()))
    );
  }
  • Filter 1: Filter out non null or non undefined objects.
  • Filter 2: Your filter.
Related