你正在使用JavaScript数组级别的过滤器,所以只需扩展你的条件:
const filteredUsers = this.state.dataToDisplay.filter(item => {
const query = this.state.search.toLowerCase();
return (
item.name.toLowerCase().indexOf(query) >= 0 ||
item.surname.toLowerCase().indexOf(query) >= 0 ||
item.phone.toLowerCase().indexOf(query) >= 0
)
});
只需向过滤函数添加更多条件即可。
const filteredUsers = this.state.dataToDisplay.filter(item => {
return (
item.name.toLowerCase().indexOf(this.state.search.toLowerCase()) >= 0
|| item.surname.toLowerCase().indexOf(this.state.search.toLowerCase()) >= 0
|| item.phone.toLowerCase().indexOf(this.state.search.toLowerCase()) >= 0;
)
})
const filterField = (search, value) => value.toLowerCase().indexOf(search.toLowerCase()) >= 0;
const orFilter = (search, values) => values.some(filterField.bind(null, search));
const filteredUsers = this.state.dataToDisplay.filter(item =>
orFilter(this.state.search, [item.name, item.surname, phone]);
)
ignoreCaseCompare(value1, value2)
这样。 - Samich