我正在从.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.我明白我需要一个循环才能触发第一条线?
答案 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(...