collections.Union
Syntax
collections.Union SET1 SET2
Returns
any
Alias
union
给定两个数组(或切片)A和B,该函数将返回一个新数组,其中包含属于A或B或两者的元素或对象。支持的元素类型为字符串、整数和浮点数(仅限float64)。
{{ union (slice 1 2 3) (slice 3 4 5) }}
<!-- 返回 [1 2 3 4 5] -->
{{ union (slice 1 2 3) nil }}
<!-- 返回 [1 2 3] -->
{{ union nil (slice 1 2 3) }}
<!-- 返回 [1 2 3] -->
{{ union nil nil }}
<!-- 返回错误,因为两个数组/切片必须是相同类型的 -->
在where查询中使用OR筛选器
当与where结合使用时,这也非常有用作为OR
筛选器:
{{ $pages := where .Site.RegularPages "Type" "not in" (slice "page" "about") }}
{{ $pages = $pages | union (where .Site.RegularPages "Params.pinned" true) }}
{{ $pages = $pages | intersect (where .Site.RegularPages "Params.images" "!=" nil) }}
上述代码获取了不属于page
或about
类型的常规页面,除非它们被固定。最后,我们排除了所有没有在Page参数中设置images
的页面。
请参阅intersect了解AND
操作。