runhide
1
What’s the difference between doing an if in statement compared to intersect?
In the following example, I’m trying to see if a keyword exists in an array.
+++
keywords = ["Hello", "World"]
+++
{{$mykeyword := slice "Hello"}}
{{if in $mykeyword .Keywords}}true{{else}}false{{end}}
This returns false.
{{$mykeyword := slice "Hello"}}
{{if intersect $mykeyword .Keywords}}true{{else}}false{{end}}
This returns true,
Does if in not work with arrays?
I think this is covered fairly well in the documentation.
| Function |
Returns |
Description |
| in |
boolean |
Checks if an element is in an array or slice–or a substring in a string—and returns a boolean. |
| intersect |
slice |
Returns the common elements of two arrays or slices. |
Note that the syntax for in is:
in SET ITEM
not
in ITEM SET
So, for your example, do this:
{{ $mykeyword := "Hello" }}
{{ if in .Keywords $mykeyword }} true {{ else }} false {{ end }}
1 Like