英文:
How to filter even and odd elements?
问题
{{ if eq ($key % 2) 0 }}
的结果是:操作数中出现意外的“%”。
{{ if $key % 2 == 0 }}
的结果是:意外的“%”操作数。
那么,我如何找到偶数和奇数的键呢?
英文:
{{ if eq ($key % 2) 0 }}
gives: unexpected "%" in operand
{{ if $key % 2 == 0 }}
gives: unexpected "%" in operand
So how do I find even and odd keys ?
答案1
得分: 2
Hugo有数学函数
首先找到余数,然后在if语句中进行检查
两个整数的模可以用mod $number 2
来找到
{{- $reminder := mod $key 2 }}
{{ if eq $reminder 0 }}
<p >{{- $value.name -}}</p>
{{ else }}
<p>{{- $value.name -}}</p>
{{ end }}
Hugo具有数学函数
首先找到余数,然后在if语句中进行检查
可以使用mod $number 2
来找到两个整数的模
{{- $reminder := mod $key 2 }}
{{ if eq $reminder 0 }}
<p >{{- $value.name -}}</p>
{{ else }}
<p>{{- $value.name -}}</p>
{{ end }}
英文:
Hugo has Math functions
First find reminder than check it in a if clause
Modulus of two integers can be find with mod $number 2
{{- $reminder := mod $key 2 }}
{{ if eq $reminder 0 }}
<p >{{- $value.name -}}</p>
{{ else }}
<p>{{- $value.name -}}</p>
{{ end }}
答案2
得分: 1
切换一个布尔变量以检测范围内的奇数和偶数元素。
{{- $odd := false}}
{{range .}}
{{$odd = not $odd}}
{{if $odd}}奇数: {{else}}偶数: {{end}}{{.}}
{{end}}
第一次迭代被认为是奇数。如果要使第一次迭代为偶数,请初始化为 $odd := true
。
这种方法适用于任何上下文中的 Go 模板(不仅限于 Hugo)。这种方法在遍历映射时也适用。
英文:
Toggle a boolean variable to detect odd and even elements in a range.
{{- $odd := false}}
{{range .}}
{{$odd = not $odd}}
{{if $odd}}odd: {{else}}even: {{end}}{{.}}
{{end}}
Run an example on the playground.
The first iteration is considered to be odd. Initialize with $odd := true
to make the first iteration even.
This approach works with Go templates in any context (not just Hugo). This approach also works when ranging over a map.
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论