我想过滤具有对象数组内的对象数组。例如,数组中的对象看起来像这样。更简单的过滤对象数组对象数组的方法
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