我想過濾具有對象數組內的對象數組。例如,數組中的對象看起來像這樣。更簡單的過濾對象數組對象數組的方法
list=[...,
{
"types": [
{
"slot": 2,
"type":
{
"url": "http://pokeapi.co/api/v2/type/4/",
"name": "poison"
}
},
{
"slot": 1,
"type":
{
"url": "http://pokeapi.co/api/v2/type/12/",
"name": "grass"
}
}
],
"name": 'bulbasaur'
},...
]
我目前正在過濾其名稱的列表和類型,如該對象(在this.props.search.search是一個字符串,例如是字符串的例子清單將被調整):
let filtered = this.props.pokemons.filter((pokemon)=>{
return pokemon.name.toLowerCase().indexOf(this.props.search.search.toLocaleLowerCase())!==-1;
})
let example = ['fire', 'ice', 'water'];
let filteredx= filtered.filter((pokemon)=>{
return pokemon.types.filter((type)=>{
return example.indexOf(type.type.name)!==-1
}).length>0
})
是否有所有過濾器組合成一個而不是調用
array.filter(...).filter(...)
作爲未來的一個方法,如果添加了更多的過濾器,我擔心它會結束向上看起來像
array.filter(...).filter(...).filter(...).filter(...).filter(...)
任何幫助,將不勝感激。
考慮使用'const',而不是'let'儘可能。它使您的代碼更具可預測性。 – ideaboxer