Kho*_*opa 0 javascript ejs sails.js
我正在使用 sails.js 开发一个简单的 Web 应用程序。
在我的前端代码中,我循环遍历控制器发送的对象数组,并且正在搜索特定对象。我想在找到对象后打破循环。有没有一种干净的方法可以使用 ejs 模板语言来做到这一点?
我在EJS官方网站和sails网站上都找不到任何相关信息。
到目前为止我天真地尝试过:
<% objects.forEach(function(object) { %>
<% if(object.someId == someValue) {%>
<%= object.name %>
<% break %> <!-- This raise an illegal statement exception -->
<% } %>
<% } %>
Run Code Online (Sandbox Code Playgroud)
以下代码按预期工作,但我正在寻找更干净的解决方案(如果有)
<% var found = false %>
<% objects.forEach(function(object) { %>
<% if(object.someId == someValue && !found) {%>
<%= object.name %>
<% found = true %>
<% } %>
<% } %>
Run Code Online (Sandbox Code Playgroud)
这不是一个与 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 -->
<% } %>
<% } %>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4442 次 |
| 最近记录: |