gpt4 book ai didi

html - 在 nunjucks 中循环对象时如何限制迭代次数

转载 作者:行者123 更新时间:2023-12-04 12:45:56 27 4
gpt4 key购买 nike

我有一个像这样的 JSON 对象

{
"data": [
{
"src": "src1",
"name": "name 1"
},
{
"src": "src2",
"name": "name 2"
},
{
"src": "src3",
"name": "name 3"
}
]
}

现在我用 Nunjucks 循环遍历它:
{% for object in data %}
{{object.src}}
{% endfor %}

但我想在这种情况下将迭代次数限制为 2(以创建对象的候选列表)。

我如何用 Nunjucks 做到这一点?

我知道有一个范围选项,但在这种情况下我找不到如何使用它。

最佳答案

您可以通过几种不同的方式完成此操作:
A) 使用 loop.index0特殊变量
内部 for loop ,您可以使用 loop.index0相反 limit -var

{% for obj in data %}
{% if loop.index0 < 2 %}
{{obj.src}}: {{obj.name}}
{% endif %}
{% endfor %}
B) 添加自定义过滤器
但更具可读性的是添加 custom filter 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);
C) 使用内置 slice 筛选
{% for obj in data.slice(0, 2) %}
{{obj.src}}: {{obj.name}}
{% endfor %}

关于html - 在 nunjucks 中循环对象时如何限制迭代次数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48420641/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com