Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Candidatos
      Encontramos y calificamos al candidato en 48h.
    • Evaluaciones
      500+ pruebas técnicas y psicológicas, más sistema anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Paga en 15+ países de LATAM sin crear entidad local.
  • Precios
  • Empleos

0

704
Vistas
Javascript API Fetch crea un filtro PokeApi

Estoy estudiando Javascript. Y para eso estoy haciendo un Juego Pokémon basado en la PokéAPI

Para hacerlo simple, quiero recuperar - filtrar - Pokémons con tipos Fuego, Agua y Hierba.

ingrese la descripción de la imagen aquí

Entiendo que debo ir a datos> tipos> (buscar en las ranuras 1 y 2)> buscar hierba, fuego y agua.

Este es mi código, hasta ahora, y estaba pensando si podría hacerlo ANTES de recuperar los datos en la API. De lo contrario, tendré que recuperar CADA Pokémon y luego filtrarlos.

 const baseUrl = 'https://pokeapi.co/api/v2/pokemon/?limit=150' try { fetch(baseUrl) .then(response => { const responseJson = response.json() return responseJson }) .then(async data => { const pokemons = data.results for (const pokemon of pokemons) { pokemon.data = await fetch(pokemon.url).then(res => res.json()) } console.log(pokemons) }) .catch(error => { console.error(error) }) } catch (error) { console.error(error) }

about 4 years ago · Juan Pablo Isaza
2 Respuestas
Responde la pregunta

0

Si no normaliza los datos de la API, debe filtrar utilizando esta lista. Pero cuando obtienes la lista de Pokémon, puedes normalizar la lista a una estructura más amigable para tu aplicación.

 function normalizeList (item = {}) { const { name, data } = item // Define your normalized data here return { name, types: data.types } }

Si necesita transformar/analizar o lo que sea, le recomiendo que cree un PokemonModel y cree instancias de Pokemon Class:

 class PokemonModel { constructor(data = {}) { this.name = data.name this.types = this._getTypes(data.types) } _getTypes(types = []) { return types.map((type) => { return { name: type.name } }) } }

Su código con PokemonModel:

 class PokemonModel { constructor(data = {}) { this.name = data.name this.types = this._getTypes(data.types) } _getTypes(types = []) { return types.map((type) => { return { name: type.name } }) } } const baseUrl = 'https://pokeapi.co/api/v2/pokemon/?limit=150' const pokemonList = [] try { fetch(baseUrl) .then(response => { const responseJson = response.json() return responseJson }) .then(async data => { const pokemons = data.results for (const pokemon of pokemons) { pokemon.data = await fetch(pokemon.url).then(res => res.json()) pokemonList.push(new PokemonModel(pokemon.data)) } console.log(pokemonList) }) .catch(error => { console.error(error) }) } catch (error) { console.error(error) }
about 4 years ago · Juan Pablo Isaza Denunciar

0

Por supuesto, no puede filtrar con datos que aún no tiene, pero puede guardar los datos en localStorage por primera vez y usarlos la próxima vez. Puedes ver ejemplos aquí

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Nuestro proceso Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda