如何筛选出偶数和奇数元素?

huangapple go评论142阅读模式
英文:

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}}

在 playground 上运行示例

第一次迭代被认为是奇数。如果要使第一次迭代为偶数,请初始化为 $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.

huangapple
  • 本文由 发表于 2022年2月17日 03:49:19
  • 转载请务必保留本文链接:https://go.coder-hub.com/71148401.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定