Lo que estoy tratando de hacer es con una entrada agregar palabras en una matriz, luego, a medida que agrega las palabras, quiero que se muestren en una lista. Así que hice una función para representar la lista, y usé un para cada uno, luego usé esa función dentro de la función que empuja las palabras a la matriz. La cosa es que cuando agregas las palabras, for each ejecuta y duplica todas las palabras.
si agrega árbol como palabra, obtiene el resultado: árbol
si agrega conejo, obtiene el resultado: árbol, árbol, conejo
digamos que quieres agregar un halcón y obtienes: árbol, árbol, conejo, árbol, árbol, conejo, halcón
Aquí está el código
const renderPass = function (array, location) { array.forEach((element) => { let html = `<li class="k">${element}</li>`; location.insertAdjacentHTML("afterbegin", html); }); }; const savingKeyWords = function (e) { e.preventDefault(); keyWords.push(keyWord.value); renderPass(keyWords, listOfKeys); console.log(keyWords); clear(keyWord); };¿¿Podrías ayudarme con esto??
Eso se debe a que parece estar usando la misma matriz definida en el contexto global una y otra vez en cada invocación. Simplemente cree una nueva matriz cada vez que se invoque guardar palabras clave.
const savingKeyWords = function (e) { let keyWords = []; e.preventDefault(); keyWords.push(keyWord.value); renderPass(keyWords, listOfKeys); console.log(keyWords); clear(keyWord); };Creo que 'keyWords' debe reemplazarse con 'keyWord.value' aquí:
renderPass(keyWords, listOfKeys);Y
const renderPass = function (keyWord, location) { let html = `<li class="k">${keyWord}</li>`; location.insertAdjacentHTML("afterbegin", html); };Espero que esto sea útil para usted. Gracias