compact

删除数组中的所有 nil 值。

例如,假定整个网站所有内容页面作为一个数组保存在 site.pages 变量中,其中某些页面被设置了 category 属性用于指定该页面的内容分类。如果我们利用 map 过滤器将所有页面的 category 属性保存到一个数组中,就会出现如果某个页面没有 category 属性,其在数组中的值就会是 nil

输入


{% assign site_categories = site.pages | map: "category" %}

{% for category in site_categories %}
- {{ category }}
{% endfor %}

输出

- business
- celebrities
-
- lifestyle
- sports
-
- technology

在创建 site_categories 数组时,通过使用 compact 过滤器我们可以删除此数组中的所有 nil 值。

输入


{% assign site_categories = site.pages | map: "category" | compact %}

{% for category in site_categories %}
- {{ category }}
{% endfor %}

输出

- business
- celebrities
- lifestyle
- sports
- technology