Nunjucks:Select for 循环中数组中的特定项目
Nunjucks: Select specific items from array in for loop
我需要 select 大数组中的特定项,比如 [5、21、83、74、12],我的列表如下所示:
{
"list:" [
{ "title": "Blue" },
{ "title": "Green" },
{ "title": "Yellow" } ...
]
}
我在考虑 for loop
,但不确定我应该使用的语法或过滤器。我应该如何修改此代码以完成上述操作?
{% for item in list %}
{% item %}
{% endfor %}
如果您需要多次应用过滤器,您可以添加自定义过滤器。
var nunjucks = require('nunjucks');
var env = nunjucks.configure();
env.addFilter('myfilter', arr => arr.filter(e => e.title == 'Green'));
var html = env.renderString(`
{% for item in list | myfilter %}
{{item.id}} {{ item.title}}
{% endfor %}
`,
{
list: [
{ id: 1, title: 'Blue' },
{ id: 2, title: 'Green' },
{ id: 3, title: 'Yellow' },
{ id: 4, title: 'Green' }
]
}
);
console.log(html);
另一种方法是每次都使用if
{% for item in list %}
{{ item if item.title == 'Green' }}
{% endfor %}
或
{% for item in list %}
{% if item.title == 'Green' %}
{{ item }}
{% endif %}
{% endfor %}
我需要 select 大数组中的特定项,比如 [5、21、83、74、12],我的列表如下所示:
{
"list:" [
{ "title": "Blue" },
{ "title": "Green" },
{ "title": "Yellow" } ...
]
}
我在考虑 for loop
,但不确定我应该使用的语法或过滤器。我应该如何修改此代码以完成上述操作?
{% for item in list %}
{% item %}
{% endfor %}
如果您需要多次应用过滤器,您可以添加自定义过滤器。
var nunjucks = require('nunjucks');
var env = nunjucks.configure();
env.addFilter('myfilter', arr => arr.filter(e => e.title == 'Green'));
var html = env.renderString(`
{% for item in list | myfilter %}
{{item.id}} {{ item.title}}
{% endfor %}
`,
{
list: [
{ id: 1, title: 'Blue' },
{ id: 2, title: 'Green' },
{ id: 3, title: 'Yellow' },
{ id: 4, title: 'Green' }
]
}
);
console.log(html);
另一种方法是每次都使用if
{% for item in list %}
{{ item if item.title == 'Green' }}
{% endfor %}
或
{% for item in list %}
{% if item.title == 'Green' %}
{{ item }}
{% endif %}
{% endfor %}