我有一个像这样的JSON对象
{
"data": [
{
"src": "src1",
"name": "name 1"
},
{
"src": "src2",
"name": "name 2"
},
{
"src": "src3",
"name": "name 3"
}
]
}
现在Iam用Nunjucks循环播放:
{% for object in data %}
{{object.src}}
{% endfor %}
但是我希望在这种情况下将迭代次数限制为2(以创建对象的候选名单)。
我如何与Nunjucks合作?
我知道有一个范围选项,但在这种情况下我找不到如何使用它。
答案 0 :(得分:0)
您可以使用loop.index0
代替limit
- var
{% for obj in data %}
{% if loop.index0 < 2 %}
{{obj.src}}: {{obj.name}}
{% endif %}
{% endfor %}
但更具可读性的是添加自定义过滤器limit
并使用它
var nunjucks = require('nunjucks');
var env = nunjucks.configure();
var data = [
{src: "src1", name: "name 1"},
{src: "src2", name: "name 2"},
{src: "src3", name: "name 3"}
];
env.addFilter('limit', function(arr, limit) {
return arr.slice(0, limit);
});
var res = nunjucks.renderString(`
{% for obj in data | limit(2) %}
{{obj.src}}: {{obj.name}}
{% endfor %}`,
{data}
);
console.log(res);
或使用原生slice
{% for obj in data.slice(0, 2) %}
{{obj.src}}: {{obj.name}}
{% endfor %}