У меня есть этот объект, и мне нужна функция для фильтрации покемонов (целых объектов) по типу или слабостям (решает пользователь).Например: «пользователю необходимо отфильтровать всех покемонов огненного типа», и результатом будет массив, содержащий каждый объект покемонов огненного типа
var POKEMON = {
"pokemon": [{
"id": 1,
"num": "001",
"name": "Bulbasaur",
"img": "https://assets.pokemon.com/assets/cms2/img/pokedex/full/001.png",
"type": [
"Grass",
"Poison"
],
"height": "0.71 m",
"weight": "6.9 kg",
"candy": "Bulbasaur Candy",
"candy_count": 25,
"egg": "2 km",
"spawn_chance": 0.69,
"avg_spawns": 69,
"spawn_time": "20:00",
"multipliers": [1.58],
"weaknesses": [
"Fire",
"Ice",
"Flying",
"Psychic"
],
"next_evolution": [{
"num": "002",
"name": "Ivysaur"
}, {
"num": "003",
"name": "Venusaur"
}]
},{
"id": 2,
"num": "002",
"name": "Ivysaur",
"img": "https://assets.pokemon.com/assets/cms2/img/pokedex/full/002.png",
"type": [
"Grass",
"Poison"
],
"height": "0.99 m",
"weight": "13.0 kg",
"candy": "Bulbasaur Candy",
"candy_count": 100,
"egg": "Not in Eggs",
"spawn_chance": 0.042,
"avg_spawns": 4.2,
"spawn_time": "07:00",
"multipliers": [
1.2,
1.6
],
"weaknesses": [
"Fire",
"Ice",
"Flying",
"Psychic"
],
"prev_evolution": [{
"num": "001",
"name": "Bulbasaur"
}],
"next_evolution": [{
"num": "003",
"name": "Venusaur"
}]
},
... (+149 other pokemon)
У меня уже есть функция, и она работает, но я бы предпочелне использовать для циклов:
const filterPokemon = (data, whatToFilter, valueToCompare) => {
return data.filter(pokemon => {
for(let i = 0 ; i < pokemon[whatToFilter].length ; i++){
if(pokemon[whatToFilter][i] === valueToCompare){
return pokemon;
}
}
});
};
filterPokemon(POKEMON.pokemon, "type", "Fire");