【发布时间】:2014-02-16 09:21:51
【问题描述】:
我有一个数组和一个以数组为参数的 mixin。 我如何将数组分成四个部分并传递给 mixin?
所以有点像这样,但更好,更有效:
each index, i in myArray
if i%4 == 0
+carouselItem([myArray[i], myArray[i+1], myArray[i+2], myArray[i+3]])
【问题讨论】:
我有一个数组和一个以数组为参数的 mixin。 我如何将数组分成四个部分并传递给 mixin?
所以有点像这样,但更好,更有效:
each index, i in myArray
if i%4 == 0
+carouselItem([myArray[i], myArray[i+1], myArray[i+2], myArray[i+3]])
【问题讨论】:
我会建议一种不同的方法:在请求处理函数中将数组转换为二维数组,然后在 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)
我希望这会有所帮助。
【讨论】: