我有一个数组,以及一个将数组作为参数的mixin。 我如何将数组分成四个部分并传递给mixin?
所以有点像这样,但更好,更有效:
each index, i in myArray
if i%4 == 0
+carouselItem([myArray[i], myArray[i+1], myArray[i+2], myArray[i+3]])
答案 0 :(得分:1)
我建议采用一种不同的方法:在您的请求处理函数中将数组转换为二维数组,然后在Jade模板中对二维数组(数组数组)执行迭代。
使用这种方法,模板将变得更加简单,所有转换都将在处理程序方法(控制器)中发生,您可以在其中访问不同的库等。
实施例: 为了将数组转换为二维数组,您可以使用以下方法:
function arrayTo2DArray (list, howMany) {
var result = []; input = list.slice(0);
while(a[0]) {
result.push(a.splice(0, howMany));
}
return result;
}
您的请求处理程序可能如下所示:
exports.handler = function(req, res) {
// myArray with some values
res.render('template' {
myArray: arrayTo2DArray(myArray, 4)
}
}
如果您myArray
是['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h']
,arrayTo2DArray(myArray, 4)
将会返回
[
['a', 'b', 'c', 'd'],
['e', 'f', 'g', 'h']
]
您的Jade模板看起来像这样(更简单)
each values in myArray
+carouselItem(values)
我希望这会有所帮助。