【问题标题】:Nunjucks: Select specific items from array in for loopNunjucks:从 for 循环中的数组中选择特定项目
【发布时间】:2019-10-17 06:37:34
【问题描述】:

我需要从一个大数组中选择特定的项目,比如 [5, 21, 83, 74, 12],我的列表如下所示:

{
  "list:" [
    { "title": "Blue" },
    { "title": "Green" },
    { "title": "Yellow" } ...
  ]
}

我在考虑for loop,但不确定我应该使用的语法或过滤器。我应该如何修改此代码以完成上述操作?

{% for item in list %}
    {% item %}
{% endfor %}

【问题讨论】:

    标签: javascript arrays for-loop nunjucks


    【解决方案1】:

    如果您需要多次应用过滤器,可以添加自定义过滤器。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-02-13
      • 2018-02-01
      • 1970-01-01
      • 2016-08-21
      • 2021-08-03
      • 1970-01-01
      • 2015-05-16
      • 1970-01-01
      相关资源
      最近更新 更多