Untitled
unknown
javascript
4 years ago
1.8 kB
22
Indexable
const input$$ = document.querySelector(".myinput"); const getCharacters = async () => { let response = await fetch(`https://rickandmortyapi.com/api/character/`); //Hace el fetch let data = await response.json(); //Lo traduce a Json let characters = data.results; //Almaceno el .results que es lo que me interesa const mappedCharacters = characters.map((character) => ({ //Mapeo los personajes y les saco name y photo de sus claves name: character.name, photo: character.image, genero: character.gender, })); //Aqui filtro los personajes según el valor de mi input de html y los filtro por nombre y también por género const filteredCharacters = mappedCharacters.filter((character) => character.name.toLowerCase().includes(input$$.value.toLowerCase()) || character.genero.toLowerCase().includes(input$$.value.toLowerCase()) ); displayCharacters(filteredCharacters); //Y para terminar ejecuto la funcion de debajo pasandole por parametro mis personajes filtrados }; const displayCharacters = (aquiVanAIrLosPersonajes) => { //Defino mi funcion que mapeará y mostrara los personajes mapeados const myHTML = aquiVanAIrLosPersonajes.map( (character) => `<img src=${character.photo} alt=${character.name} /> <p>${character.name}</p> <p>${character.genero}</p> ` //Aqui defino del bloque de HTML que quiero por cada uno de los personajes con Template Strings ); document.querySelector(".container").innerHTML = myHTML; //Y se lo inyecto al body de mi HTML }; /* input$$.addEventListener("input", getCharacters) */ //Le añado a mi input que cada vez que cambie me ejecute la función de nuevo para detectar los cambios getCharacters(); //Externamente solo estoy ejecutando esta función, es lo único que ejecuta mi JS
Editor is loading...