计算Coldfusion中的名字

时间:2015-10-28 10:46:47

标签: list coldfusion counting

我有一个清单:

  • 麦克
  • 彼得
  • 马歇尔
  • 麦克
  • 彼得
  • 麦克
  • 彼得
  • 玛丽
  • 约翰
  • 彼得
  • 马歇尔
  • 麦克
  • 史蒂芬

我想知道其中一个名字出现在该名单中的频率。

像:

  • Mike = 4
  • 彼得= 4
  • Marshall = 2
  • Marie = 1
  • John = 1
  • Steven = 1

我该怎么做(顺便说一下我真的很新,所以这是一个初学者问题)

2 个答案:

答案 0 :(得分:9)

您可loop超过list,可以使用names as key及其count as values创建一个结构:

<cfset names = "Mike,Peter,Marshall,Mike,Peter,Mike,Peter,Marie,John,Peter,Marshall,Mike,Steven">
<cfset nameCount = structNew()>
<cfloop list="#names#" index="currentName" delimiters=",">
  <cfif structKeyExists(nameCount, currentName)>
    <cfset nameCount[currentName] += 1>
  <cfelse>
    <cfset nameCount[currentName] = 1>
  </cfif>
</cfloop>

答案 1 :(得分:1)

Beginner的答案为您提供了一个结构,其中包含列表中每个项目的出现次数。

如果您想知道此列表中任意字符串的出现频率,您可以使用内置函数listValueCount(list, value)listValueCountNoCase(list, value)

<cfset names = "Mike,Peter,Marshall,Mike,Peter,Mike,Peter,Marie">
<!--- x = 3 --->
<cfset x = listValueCount(names, "Mike")>
<!--- x = 0 --->
<cfset x = listValueCount(names, "Steve")>