数组在作为 EJS 变量传递后变为字符串

Array turns to string after passing as an EJS variable

所以我有一个包含数组的文件,我正在将其传递给 ejs template。我必须在 for loop 中使用该数组来呈现数组的每个项目。但我现在得到的只是控制台中的字母。好像我不知何故把它变成了一个字符串。

有人可以帮助我使用 for 循环并使用正确的 EJS 语法来呈现数组中的每个项目吗?

代码如下:

Example.js

router.get('/example', (req, res) => {
    const array         = ['superman', 'batman', 'wonderwoman'];
    res.render("../views/example", { data: array });
});

EJS 模板

<script>

    <% if(data) { %>
        const dataArr = '<%- data %>';
        
        for ( let i = 0; i < dataArr.length; i++ ) {             
            console.log(dataArr[i]);
        }
        
    <% }else{ %>
        console.log('no data')
    <% } %>

</script>

最近使用 ejs 遇到了类似的问题,为我解决的是在脚本中使用以下分配:

const dataArr =  <%-JSON.stringify(data)%>;