如何在四十循环中停止循环

时间:2015-01-26 02:35:02

标签: javascript node.js ejs

我从我的数据库中提取数据,并通过我的控制器发送我的视图。日期即将到来,我正在使用循环在HTML中呈现此数据。

问题是我只想显示4个项目,而不是全部。我该如何解决这个问题?

例如:

<% for(var i = 0; i < data.length; i++ { %>
 <p> <%= data[i].name %>
 <p> <%= data[i].age %>
<% } %>

我只想渲染4次。如何实现这一目标?

谢谢!

2 个答案:

答案 0 :(得分:1)

像这样:

<% for(var i = 0; i < data.length && i<4; i++ { %>
 <p> <%= data[i].name %>
 <p> <%= data[i].age %>
<% } %>

答案 1 :(得分:0)

我会做类似的事情:

<% for(var i = 0,max = (data.length > 4 ? 4 : data.length); i < max; i++ { %>
 <p> <%= data[i].name %>
 <p> <%= data[i].age %>
<% } %>

这样做是循环迭代4次或数据长度(以较短者为准)。如果你没有那个条件,你可能会进入一个超出范围的索引(例如,如果data.length是2)。

编码注释:在for-loop开头声明max的好习惯。它更具可读性,对于性能问题,数据长度属性的查找只发生一次(而不是每次迭代)。


根据评论进行更新

添加其他条件(例如pageName ='home')

<% for(var i = 0,max = ( (data.length > 4 && pageName === 'home') ? 4 : data.length); i < max; i++ { %>
 <p> <%= data[i].name %>
 <p> <%= data[i].age %>
<% } %>