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 %}