list - 汇总列表中的动态字段
问题描述
我有一个类似的列表:
<cfset list ="group 1:1; group 2:4; group a:7; group 1:3; group a:1;">
我要做的是计算(总结)第1组,第2组,第a组等中有多少人。现在这些字段是动态的,所以我不知道组的确切名称。
所以这个例子的最终结果是:
group 1: 4
group 2: 4
group a: 8
所以这个列表只是一个例子,实际上它更大,有更多的组(动态名称)。我正在使用 Coldfusion/Lucee。有人可以帮我弄这个吗?
解决方案
这只是众多可能的替代方法之一。从使用查询而不是列表作为起始值开始。
我正在做的是用;
分隔符循环列表并将值添加到结构中。我稍后使用该结构循环并列出最终总数。
<cfset list ="group 1:1; group 2:4; group a:7; group 1:3; group a:1;">
<cfset totalStruct = {}>
<cfloop list="#list#" item="group" delimiters=';'>
<cfset groupName = listFirst(group, ':')>
<cfset groupNameKey = replace(groupName, ' ', '', 'all')>
<cfset groupValue = val(listLast(group, ':'))>
<cfif !structKeyExists(totalStruct, groupNameKey)>
<cfset totalStruct[groupNameKey] = {name:groupName, total=groupValue}>
<cfelse>
<cfset totalStruct[groupNameKey].total += groupValue>
</cfif>
</cfloop>
<cfoutput>
<ul>
<cfloop collection="#totalStruct#" item="group">
<li>#totalStruct[group].name# : #totalStruct[group].total#</li>
</cfloop>
</ul>
</cfoutput>
推荐阅读
- sharepoint - 使用 sharepoint 搜索 API,如何在我的 sharepoint 租约内检索所有站点内的所有文档?
- azure-maps - PostRouteDirections 不会从路线中排除区域
- ibm-integration-bus - 如何在 JCN 中访问 XML 结构
- sql - Oracle 查询返回单行
- amazon-web-services - AWS 无服务器框架:创建 IAM 角色和策略时出现 MalformedPolicyDocument 错误
- powerbi - Power Bi:从 url 填充源查询中使用的参数
- javascript - 以编程方式调整 PNG 的大小
- excel - 使用单元格中的文本值作为公式
- php - 使用 PHP header:location 时下载速度慢
- android - 使用 Android Studio 录制屏幕视频的问题