我对是否有办法在过滤器表达式中动态具有多个条件感到有些好奇。例如
dataSource.filter(data => data.x === a && data.x === b && data.x === c)
它可以有'n'个条件,所有条件都是动态的。
谢谢
答案 0 :(得分:0)
不是那样,不。您将必须传递一个接受data
或data.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]));