Javascript 如何使用EJS模板语言打破循环?

Javascript 如何使用EJS模板语言打破循环?,javascript,sails.js,ejs,Javascript,Sails.js,Ejs,我正在用sails.js开发一个简单的web应用程序 在我的前端代码中,我在控制器发送的对象数组上循环,并搜索特定的对象。一旦找到目标,我想打破循环。有没有一种干净的方法可以使用ejs模板语言来做到这一点 我在EJS官方网站上找不到关于它的任何信息,也在sails网站上找不到 我天真地尝试了这一点,直到现在: <% objects.forEach(function(object) { %> <% if(object.someId == someValue) {%>

我正在用sails.js开发一个简单的web应用程序

在我的前端代码中,我在控制器发送的对象数组上循环,并搜索特定的对象。一旦找到目标,我想打破循环。有没有一种干净的方法可以使用ejs模板语言来做到这一点

我在EJS官方网站上找不到关于它的任何信息,也在sails网站上找不到

我天真地尝试了这一点,直到现在:

<% objects.forEach(function(object)  { %>
    <% if(object.someId == someValue) {%>
        <%= object.name %>
        <% break %> <!-- This raise an illegal statement exception -->
    <% } %>
<% } %>

以下代码按预期工作,但我正在寻找更干净的解决方案(如果有的话)

<% var found = false %>
<% objects.forEach(function(object)  { %>
    <% if(object.someId == someValue && !found) {%>
        <%= object.name %>
        <% found = true %>
    <% } %>
<% } %>

这不是一个与EJS相关的问题

break
语句终止当前循环。当您不在循环中时。您在回调函数中,该函数由
forEach
方法对每个数组元素调用一次。无法中断forEach(请参阅)。但是,如果需要,您可以使用
for
循环获得干净的解决方案:

<% for (var l = objects.length, i = 0; i < l; i++) { %>
    <% object = objects[i]%>
    <% if(object.someId == someValue) {%>
        <%= object.name %>
        <% break %> <!-- This will work as expected -->
    <% } %>
<% } %>

这不是一个与EJS相关的问题

break
语句终止当前循环。当您不在循环中时。您在回调函数中,该函数由
forEach
方法对每个数组元素调用一次。无法中断forEach(请参阅)。但是,如果需要,您可以使用
for
循环获得干净的解决方案:

<% for (var l = objects.length, i = 0; i < l; i++) { %>
    <% object = objects[i]%>
    <% if(object.someId == someValue) {%>
        <%= object.name %>
        <% break %> <!-- This will work as expected -->
    <% } %>
<% } %>