我从我的数据库中提取数据,并通过我的控制器发送我的视图。日期即将到来,我正在使用循环在HTML中呈现此数据。
问题是我只想显示4个项目,而不是全部。我该如何解决这个问题?
例如:
<% for(var i = 0; i < data.length; i++ { %>
<p> <%= data[i].name %>
<p> <%= data[i].age %>
<% } %>
我只想渲染4次。如何实现这一目标?
谢谢!
答案 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 %>
<% } %>