En primer lugar, me gustaría mencionar que puedo obtener la longitud correcta de los datos si coloco el bucle for dentro de EJS, pero lo mismo no funciona en Javascript.
Mi código en el archivo ejs:
<% for(var i=0; i< arr.length; i++){ %> TESTING <% } %> Esto mostrará TESTING por 3 times , lo cual es correcto. Sin embargo, cuando ejecuto el ciclo en Javascript, me da 40 ++ salidas.
Mi código en el mismo archivo ejs:
<script> var newArr = "<%- arr%>"; for(var i=0; i< newArr.length; i++){ $(document).ready(function() { setData(); }); } function setData(){ var box = document.getElementById('list-box'); const para = document.createElement('p'); para.innerHTML = `<input type="button" value="Test">` box.appendChild(para); } </script>Aquí se adjuntan más de 40 párrafos... No tengo idea de por qué la longitud puede ser diferente (no hay ningún error). ¿Puede alguien enseñarme el método para obtener longitud en javascript?
newArr es una cadena y newArr.length es el número de caracteres. Elimine las comillas y encadene la matriz antes:
var newArr = <%- JSON.stringify(arr) %>;