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