I have the following code: (also available in Codepen )
const agregar=document.querySelector('#agregar')
const inputAgregar=document.querySelector('#inputAgregar')
const listaUl=document.querySelector('#listaUl')
var datosArray=[]
agregar.addEventListener('click', function() {
if (inputAgregar.value=='') {
alert('Esta vacio')
inputAgregar.focus()
} else {
datosArray.push(inputAgregar.value)
inputAgregar.value=''
inputAgregar.focus()
mostrar(datosArray)
}
})
function mostrar(datosArray) {
for( i of datosArray) {
var listaLi=document.createElement('li')
listaUl.appendChild(listaLi)
listaLi.innerText=datosArray
console.log(datosArray)
}
}
<input type="text" id="inputAgregar">
<p>
<button id="agregar">Agregar</button>
</p>
<ul id="listaUl"></ul>
Why do I get repeated data when traversing an array and displaying them in a list in JavaScript?