你如何在 EJS 中做一个 for loop/for each ?

How do you do a for loop/for each in EJS?

我知道它必须在 <% %> 内部,但我不确定它是否与典型的 forEach/for 循环有很大不同。 EJS 站点上的文档非常有限,所以我来了。

<% include ../../partials/header %>

<body>
  <main>
    <h1>List of all quotes</h1>
    <ul>
      <li> <!-- for loop goes here, inside flounder -->
        <%
        all quote stuff goes here
        author
        content
        wrap it in a link to its quote page
      </li>
    </ul>
  </main>
</body>

</html>

下面是 embeddedjs 的例子:

    <ul>
<% for(var i=0; i<supplies.length; i++) {%>
   <li><%= supplies[i] %></li>
<% } %>
</ul>

这就是我所做的:

<% include ../../partials/header %> <
<body>
  <main>
    <h1>List of all quotes</h1>
    <ul>
      <% for(var i = 0; i < author.length; i++) {
        <li><%= author[i] %></li>
      <% } %>

      <% for(var i = 0; i < content.length; i++) {
        <li><%= content[i] %></li>
      <% } %>

    </ul>
  </main>
</body>

</html>

假设您有一个学生 JSON 对象,其中包含学生姓名、年份和课程的详细信息,然后您可以按如下方式使用 forEach 进行循环。

<ul>
 <% students.forEach(function(student) { %>
    <li> Name:<%= student.name %> Course:<%= student.course %></li>
 <% }); %> 
</ul>

同样可以申请你上面的作者和引用问题

我想使用 forEach 数组方法并将索引作为第二个参数传递,并做了如下操作:

<% orders.products.forEach((order,index) => {%>
            <tr>
              <td><%= index+1 %></td>
              <td><%= order.description %></td>
              <td><%= order.price %></td>
              <td><%=order.quantity %></td>
              <td><%=orders.amount %></td>
              <td><%=order.salesTax %></td>
              <td><%=order.tax %></td>
              <td><%=order.amount %></td>
            </tr>
            <% });%> <% }%>