假设我有一个搜索词:const searchTerms = ['sarasota', 'fl']
还有一个位置列表,
const selectedRestaurants = [{
city: "Orlando",
name: "Dons Food Place",
state: "FL",
id: 1
},
{
city: "Sarasota",
name: "Rons World",
state: "FL",
id: 2
}]
如果我搜索'Sarasota FL',我希望只返回一个'Sarasota FL'位置。但是如果我基于多个参数(城市和州)进行搜索,则搜索会返回两个位置,因为在第二次迭代期间它与州匹配。
编辑:当我仅搜索'Sarasota'时,我也需要这个功能。
以下是我的代码:
filterBySearchTerm(searchTerms) {
let searchedRestaurants = [];
for (var j = 0; j < selectedRestaurants.length; j++) {
searchTerms.forEach(term => {
if (term.toLowerCase() === this.state.selectedRestaurants[j].city.toLowerCase()) {
searchedRestaurants.push(this.state.selectedRestaurants[j])
}
if (term.toLowerCase() === this.state.selectedRestaurants[j].state.toLowerCase()) {
searchedRestaurants.push(this.state.selectedRestaurants[j])
}
if (term.toLowerCase() === this.state.selectedRestaurants[j].name.toLowerCase()) {
searchedRestaurants.push(this.state.selectedRestaurants[j])
}
})
}
//I use Set to remove duplicates ^^
searchedRestaurants = [...new Set(searchedRestaurants)]
return searchedRestaurants;
}
我一直在这个问题上卡了一会儿...有人能帮忙吗?可能不会有什么区别,但我使用的是ReactJS。