Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

190
Views
Empuje en una matriz vacía una entrada de texto en Javascript

Cuando un usuario ingresa una palabra en una entrada de texto, se muestra en mi página. Y así los nombres pueden acumularse. Al mismo tiempo, quiero que los nombres se inserten en una matriz. Desafortunadamente, no puedo hacerlo:

 function getinnerText() { const arr = [] const newProduct = document.createElement("li"); newProduct.textContent = `${name}`; document.querySelector(".nameArea").appendChild(newProduct) arr.push(name) }

Siempre me crea mi matriz con solo el último valor agregado.

¿Alguien tiene una solución? Muchas gracias =)!

about 4 years ago · Juan Pablo Isaza
3 answers
Answer question

0

Debe mover su matriz fuera de la función. Cada vez que llama a la función, está recreando la matriz con un solo elemento.

Separaría el modelo de la vista. Cada vez que agregue un producto a la matriz, vuelva a representar lo que hay en la matriz.

 const nameInput = document.querySelector('input[name="product"]'), addButton = document.querySelector('#add'), nameArea = document.querySelector('.nameArea'); const products = []; const render = () => { nameArea.innerHTML = ''; products.forEach(product => { const newProduct = document.createElement('li'); newProduct.textContent = product; nameArea.appendChild(newProduct) }); } const handleAdd = (e) => { products.push(nameInput.value); nameInput.value = ''; render(); }; document.querySelector('#add').addEventListener('click', handleAdd);
 <input name="product" /> <button id="add">Add</button> <ul class="nameArea"></ul>

about 4 years ago · Juan Pablo Isaza Report

0

Cada vez que llama a la función getinnerText , se crea una nueva variable arr . Después de ejecutar la función, la matriz ya no estará disponible.

La solución es sacar la const arr = [] de la declaración de la función de la siguiente manera:

 const arr = [] function getinnerText() { const newProduct = document.createElement("li"); newProduct.textContent = `${name}`; document.querySelector(".nameArea").appendChild(newProduct) arr.push(name) }
about 4 years ago · Juan Pablo Isaza Report

0

Puede declarar const arr = [] fuera de la función getinnerText. Para que pueda obtener todos los nombres que ha ingresado. De lo contrario, crea una nueva matriz cada llamada de función.

 const arr = [] function getinnerText() { const newProduct = document.createElement("li"); newProduct.textContent = `${name}`; document.querySelector(".nameArea").appendChild(newProduct) arr.push(name) }

Espero resolver el problema :)

about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!