Skip to main content

2 つの配列またはスライスを指定すると、配列/スライスのいずれかまたは両方に属する要素またはオブジェクトを含む新しい配列を返します。

2 つの配列 (またはスライス) 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 が設定されていないすべてのページを除外します。

AND については、intersect を参照してください。