NodeJS/Express/EJS:无法获取从Javascript中的NodeJS呈现的JSON数组的长度



首先,我想说的是,如果我在EJS中放入for循环,我可以获得正确的数据长度,但同样的事情在Javascript中不起作用。

我在ejs文件中的代码:

<% for(var i=0; i< arr.length; i++){ %>
TESTING
<% } %> 

这将显示正确的3 times的测试。然而,当我在Javascript中运行循环时,它会给我40++的输出。

我在同一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>

这里附有40多段。。。我不知道为什么长度会不同(根本没有错误(。有人可以教我用javascript获取长度的方法吗?

newArr是字符串,newArr.length是字符数。删除引号并将数组字符串化:

var newArr = <%- JSON.stringify(arr) %>;

最新更新