循环数组;找到并显示模数

时间:2013-08-07 02:23:53

标签: javascript node.js ejs

我正在从.json文件中检索记录,我正在使用node.js生成记录(使用fs,ejs,http,request,connect modules);

这是我用来检索记录的代码:

<% layers.forEach(function(layer) { %>
<div class="dr-container" style="-webkit-transform: rotate(<%= layer.angle %>deg);">
<% for (j = 1; j <= layer.repeat; j++) { %>
<div class="dr-box" style="height: <%= 100 / layer.repeat %>%;background-image: url('data:image/svg+xml;charset=utf-8,<%= layer.linetype %><%= layer.swatch %>');"></div><% } %></div>
<% }); %>

layers 是我从中提取信息的数组; angle,repeat,linetype,swatch 是模板上输入表单中的字段。 div意味着重复相同的结果一定次数并且运行良好)

如何检索所有记录的剩余部分除以6,并仅显示那些?

就像拥有38条记录并显示最后一条2.我明白我需要一个循环才能触发第一条线?

2 个答案:

答案 0 :(得分:1)

我正在寻找能给我同样东西的东西,但不仅仅是使用数组中的索引,而且可以使用无限的任意位置(即+100 - 100),所以我在上面的代码中添加了一行代码-12。如果有人需要它。

function carousel(array, arbitraryIndex, n) {
var result = [];
index = arbitraryIndex % (array.length);
for (var i = index - n, len = array.length; i <= index + n; i++) {
    result.push(array[i < 0 ? len + i : i > len - 1 ? i - len : i]);
}

return result;
}

var array = [0, 1, 2, 3, 4, 5],
arbitraryIndex = -12,
n = 3;

console.log(carousel(array, arbitraryIndex, n));

答案 1 :(得分:0)

@Bergi:很好,但是当模数为0时它不起作用:slice(-0)是整个数组。要修复,请使用

layers.slice(layers.length - layers.length%6).forEach(...