【发布时间】:2017-11-26 14:06:41
【问题描述】:
我有这段代码,可以过滤我的数据。我在问我,是否有办法不明确过滤每个字段(id、mandant、zonenlogik...)。
也许有一种更流畅的方法可以在所有字段上设置过滤器而不显式调用它们?
let filteredList = this.state.freights.filter((freight) => {
if (freight.id.toLowerCase().indexOf(this.state.search.toLowerCase()) !== -1) {
return freight;
}
if (freight.mandant.toLowerCase().indexOf(this.state.search.toLowerCase()) !== -1) {
return freight;
}
if (freight.zonenlogik.toLowerCase().indexOf(this.state.search.toLowerCase()) !== -1) {
return freight;
}
if (freight.frachtart_nr.toLowerCase().indexOf(this.state.search.toLowerCase()) !== -1) {
return freight;
}
if (freight.transportart_nr.toLowerCase().indexOf(this.state.search.toLowerCase()) !== -1) {
return freight;
}
if (freight.spedit_nr.toLowerCase().indexOf(this.state.search.toLowerCase()) !== -1) {
return freight;
}
if (freight.spedit2_nr.toLowerCase().indexOf(this.state.search.toLowerCase()) !== -1) {
return freight;
}
if (freight.lager_nr.toLowerCase().indexOf(this.state.search.toLowerCase()) !== -1) {
return freight;
}
});
【问题讨论】:
-
为了简化代码,首先可以复用
this.state.search.toLowerCase()等变量。此外,您可以将类似的逻辑与函数进行分组。
标签: javascript arrays reactjs filter