reduce

这个 reduce filter使用arrow函数迭代地将序列或映射缩减为单个值,从而将其缩减为单个值。arrow函数接收上一次迭代的返回值和序列或映射的当前值:

1
2
3
4
{% set numbers = [1, 2, 3] %}

{{ numbers|reduce((carry, v) => carry + v) }}
{# output 6 #}

这个 reduce 过滤器需要 initial 值作为第二个参数:

1
2
{{ numbers|reduce((carry, v) => carry + v, 10) }}
{# output 16 #}

注意arrow函数可以访问当前上下文。

争论

  • arrow :箭头函数
  • initial :初始值