![]() |
慷慨的鼠标垫 · 计算广告(2)---广告一些基础概念- ...· 1 月前 · |
![]() |
长情的大熊猫 · 幽灵行动:荒野_百度百科· 1 年前 · |
![]() |
瘦瘦的小摩托 · 英语能力对于土木工程行业的学生来说重要吗|1 ...· 1 年前 · |
![]() |
儒雅的松鼠 · 橘右京这个英雄,王者荣耀、剑与远征谁才是真正 ...· 1 年前 · |
![]() |
不拘小节的香蕉 · 【每日一字】卜:求签问卜· 1 年前 · |
我正在设置一个系统流,我需要知道ArticleNumber列表中有多少个ArticleNumber。
例如,这里是ArticleNumber列表
35361,35361,35361,205,09308943528,093089435281,093089435281
我想知道列表中有多少个ArticleNumber "09308943528“
我尝试过
?contains
,但它只是一个布尔值。
<#if MainArticleNumberList!?contains('${ArticleNumber!}')>true<#else>false</#if>
我希望输出数字取决于列表中有多少个ArticleNumber,在上面的例子中它将显示1。
out = [1,2,3,1,1,1]
print(out.count(1))
使用带有大小的 filter 来计算计数:
${MainArticleNumberList?filter(x -> x=="09308943528")?sequence?size}
使用 seq_contains freemarker内置的序列:
<#if MainArticleNumberList?seq_contains("09308943528")>true<#else>false</#if>
告诉序列是否包含指定的值(根据模板语言的==操作符,而不是Object.equals)。它有一个参数,即要查找的值。
如果您使用的是FreeMarker 2.3.29之前的版本,因此不能使用
?filter
,您仍然可以这样做:
<#assign cnt = 0>
<#list MainArticleNumberList as articleNumber>
<#if articleNumber == '09308943528'>
<#assign cnt++>
</#list>
${cnt}
代码:
[#assign numbers = [1,1,2,3,4,4,0,5,0,6,0,8,9]]
[#assign words = ["hello","bye","hello"]]
[#function getOccurrencesCount sequence item]
[#local occurrencesCount = 0]
[#list sequence as i]
[#if i == item]
[#local occurrencesCount++]
[/#if]
[/#list]
[#return occurrencesCount]
[/#function]
0 in numbers: ${getOccurrencesCount(numbers,0)}
6 in numbers: ${getOccurrencesCount(numbers,6)}
9 in numbers: ${getOccurrencesCount(numbers,9)}