Typescript-过滤器:动态地在过滤器中提供多个条件

时间:2018-07-09 17:12:34

标签: typescript2.0

我对是否有办法在过滤器表达式中动态具有多个条件感到有些好奇。例如

dataSource.filter(data => data.x === a && data.x === b && data.x === c)

它可以有'n'个条件,所有条件都是动态的。

谢谢

1 个答案:

答案 0 :(得分:0)

不是那样,不。您将必须传递一个接受datadata.x的函数,并检查所有可能的条件。

function filterData(possibleValuesOfX: number[] = []) {
   return (data: Data) => {
      for (let value of possibleValuesOfX) {
         if (data.x === value) {
            return true;
         }
      }
      return false;
   }
}

const filteredDataSource = dataSource.filter(filterData([a, b, c]));