首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >计算列表中的值

计算列表中的值
EN

Stack Overflow用户
提问于 2019-09-10 13:49:18
回答 4查看 146关注 0票数 2

我正在设置一个系统流,我需要知道ArticleNumber列表中有多少个ArticleNumber。

例如,这里是ArticleNumber列表

代码语言:javascript
复制
35361,35361,35361,205,09308943528,093089435281,093089435281

我想知道列表中有多少个ArticleNumber "09308943528“

我尝试过?contains,但它只是一个布尔值。

代码语言:javascript
复制
<#if MainArticleNumberList!?contains('${ArticleNumber!}')>true<#else>false</#if>

我希望输出数字取决于列表中有多少个ArticleNumber,在上面的例子中它将显示1。

EN

回答 4

Stack Overflow用户

发布于 2019-09-10 14:13:57

使用带有大小的filter来计算计数:

代码语言:javascript
复制
${MainArticleNumberList?filter(x -> x=="09308943528")?sequence?size}

使用seq_contains freemarker内置的序列:

代码语言:javascript
复制
<#if MainArticleNumberList?seq_contains("09308943528")>true<#else>false</#if>

告诉序列是否包含指定的值(根据模板语言的==操作符,而不是Object.equals)。它有一个参数,即要查找的值。

票数 1
EN

Stack Overflow用户

发布于 2019-09-12 01:51:45

如果您使用的是FreeMarker 2.3.29之前的版本,因此不能使用?filter,您仍然可以这样做:

代码语言:javascript
复制
<#assign cnt = 0>
<#list MainArticleNumberList as articleNumber>
  <#if articleNumber == '09308943528'>
    <#assign cnt++>
  </#if>
</#list>
${cnt}
票数 1
EN

Stack Overflow用户

发布于 2019-09-10 13:52:39

代码语言:javascript
复制
out = [1,2,3,1,1,1]

print(out.count(1))
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57864703

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档