[英]How to break a loop with the EJS template language?
我正在使用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(請參閱如何像調用break那樣使Array.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 -->
<% } %>
<% } %>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.