我正在用sails.js开发一个简单的Web应用程序。
在我的前端代码中,我循环遍历控制器发送的对象数组,并搜索特定的对象。我想在找到目标后中断这个循环。有没有一种干净的方法可以使用ejs模板语言来实现这一点?
我在EJS的官方网站上找不到任何关于它的信息,也不在帆的网站上。
我天真地尝试到现在:
<% 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 %>
<% } %>
<% } %>
1条答案
按热度按时间k97glaaz1#
这不是一个与EJS有关的问题。
break
语句终止当前循环。当你不在一个循环中时。你在回调函数中,forEach
方法对每个数组元素调用一次。没有中断forEach的能力(参见How to short circuit Array.forEach like calling break?)。但是,如果你需要它,你可以使用for
循环作为一个干净的解决方案: