作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在从数据库中读取数字并创建一个 4 位数字模式,例如:
1, 2, 2, 1
0, 2, 2, 2
4, 0, 2, 0
1, 2, 2, 1
2, 1, 1, 2
每个数字只能是 0-6。第二步是我的问题所在。我需要计算每个模式。例如,模式 1,2,2,1 的计数为 2,因为它出现了两次,而其他模式各只出现一次。
1, 2, 2, 1 - 2
0, 2, 2, 2 - 1
4, 0, 2, 0 - 1
2, 1, 1, 2 - 1
我正在考虑使用二维数组。在哪里
combinations[1][1]="1, 2, 2, 1" (the pattern)
combinations[1][2]=2 (the count)
combinations[2][1]="0, 2, 2, 2"
combinations[2][2]=1
etc.
如何在匹配模式的同时实际动态创建数组?即如果尚未找到模式,则将其添加到数组中。如果找到,则添加到计数中。我试过这个:
<cfloop index="i" from="1" to="#ArrayLen(combinations)#">
<cfif not arrayFind(combinations[i][1],"#patterns#")>
<cfset arrayAppend(combinations,["#patterns#",1]) >
<cfelse>
<cfset combinations[i][2] = combinations[i][2] + 1>
</cfif>
</cfloop>
但是我在 ArrayFind 上收到错误消息:
Object of type class java.lang.String cannot be used as an array
任何帮助表示赞赏。先感谢您。
最佳答案
解决了我自己的问题。看起来我用错了函数。这有效:
<cfloop index="i" from="1" to="#ArrayLen(combinations)#">
<cfif Find(combinations[i][1],"#patterns#")>
<cfset combinations[i][2] = combinations[i][2] + 1>
<cfset found = 1>
</cfif>
</cfloop>
<cfif not found>
<cfset arrayAppend(combinations,["#patterns#",1]) >
</cfif>
关于arrays - 基于模式匹配的冷聚变计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65606019/
我是一名优秀的程序员,十分优秀!