filter
¶
这个 filter
过滤器使用箭头函数过滤序列或映射的元素。arrow函数接收序列或映射的值:
1 2 3 4 | {% set sizes = [34, 36, 38, 40, 42] %}
{{ sizes|filter(v => v > 38)|join(', ') }}
{# output 40, 42 #}
|
与 for
标记,它允许筛选要迭代的项:
1 2 3 4 | {% for v in sizes|filter(v => v > 38) -%}
{{ v }}
{% endfor %}
{# output 40 42 #}
|
它也适用于映射:
1 2 3 4 5 6 7 8 9 10 11 12 | {% set sizes = {
xs: 34,
s: 36,
m: 38,
l: 40,
xl: 42,
} %}
{% for k, v in sizes|filter(v => v > 38) -%}
{{ k }} = {{ v }}
{% endfor %}
{# output l = 40 xl = 42 #}
|
arrow函数还接收密钥作为第二个参数:
1 2 3 4 | {% for k, v in sizes|filter((v, k) => v > 38 and k != "xl") -%}
{{ k }} = {{ v }}
{% endfor %}
{# output l = 40 #}
|
注意arrow函数可以访问当前上下文。
争论¶
array
:序列或映射arrow
:箭头函数