where | 配列を条件でフィルターする

こんにちはnasustです。

whereは、SQLのwhereと同じような条件を記述でフィルターして新たな配列を返します。

see also: where | Hugo

whereはよく使うテンプレート関数です。 Hugoは様々なウェブサイトのコンテンツの配列があります。 ウェブサイト全ての記事の配列、セクションの配列。 whereで必要な要素をフィルターして使用する事が良くあります。

書式

$array := where COLLECTION KEY [OPERATOR] MATCH

{{ range where .Pages "Section" "foo" }}
  {{ .Content }}
{{ end }}

.Pagesの変数”Section”が”foo”であるものをフィルターしています。

OPERATOR

演算子を使用した例です。

{{ range where .Pages "Section" "!=" "foo" }}
   {{ .Content }}
{{ end }}

.Pagesの変数”Section”が”foo”でないものをフィルターしています。

=, ==, eq

一致した場合、マッチします。

!=, <>, ne

一致しない場合、マッチします。

>=, ge

以上である場合、マッチします。

>, gt

より大きい場合、マッチします。

<=, le

以下である場合、マッチします。

<, lt

より小さい場合、マッチします。

in

配列またはスライスに含まれている値と一致する場合、マッチします。

not in

配列またはスライスに含まれている値と一致しない場合、マッチします。

intersect

配列同士の比較で共通する場合、マッチします。

注意点

数値で比較する場合、型が違う為に正常な結果を得られない場合があります。 その場合は、intなどを使用して型変換してから指定します。

iOS、Android、Web、APIサーバーなどのフロントエンド・バックエンドを開発するソフトウェアエンジニアです。 UI/UXが好きです。かっこいいUIやWebデザインを眺めるのが趣味です。 このブログはソフトウェア開発関係の内容を記事にしています。
web service:
GitHubQiitaTwitterはてなブログ
handle name:
nasust
real name:
hideki mori
job:
ソフトウェアエンジニア
develop:
target: ios, android, web page, single page application, api server, system service, cli tool, linux embedded device

lang: c/c++, go, swift, objective-c, java, kotlin, typescript, dart, javascript, ruby, python, php

tool: vscode, xcode, android studio, photoshop, vim, docker