ListRemovedUpplicates结果的末尾有一个逗号
在Lucee中使用ListRemovedUpplicates结果的末尾有一个逗号,list,coldfusion,coldfusion-10,lucee,List,Coldfusion,Coldfusion 10,Lucee,在Lucee中使用listRemoveDuplicates时,它会删除重复的值,但仍会在值的末尾保留分隔符 例: 但是,当使用Adobe ColdFusion检查同一函数时,它会生成正确的值(末尾没有逗号): 我怎么能省略Lucee中的逗号分隔符 浏览Lucee文档,我找到了返回正确值的函数 <cfset myUsers = 'sathish,sathish'> <cfset removeDups = listCompact(listRemoveDuplicates(myUse
listRemoveDuplicates
时,它会删除重复的值,但仍会在值的末尾保留分隔符
例:
但是,当使用Adobe ColdFusion检查同一函数时,它会生成正确的值(末尾没有逗号):
我怎么能省略Lucee中的逗号分隔符 浏览Lucee文档,我找到了返回正确值的函数
<cfset myUsers = 'sathish,sathish'>
<cfset removeDups = listCompact(listRemoveDuplicates(myUsers))>
<cfdump var="#removeDups#" />
您还可以创建如下自定义函数:
<cffunction name="UDF_listRemoveDuplicates" access="public">
<cfargument name="list" type="string" required="yes">
<!--- Hash Map to maintain the order --->
<cfset local.hashMap = createObject("java", "java.util.LinkedHashMap").init()>
<!--- Add list values as key to Hash Map --->
<cfloop list="#arguments.list#" index="local.value" delimiters=",">
<cfset local.hashMap[local.value] = 1>
</cfloop>
<!--- Return list of Keys --->
<cfreturn structKeyList(local.hashMap, ",")>
</cffunction>
<cfoutput>#UDF_listRemoveDuplicates("sathish,sathish")#</cfoutput>
#UDF_列表删除副本(“sathish,sathish”)#
这应该对两者都有效。(未在Lucee上测试)看起来已经输入了一个bug-谢谢Miguel-F,但是我得到了函数ListCompact()来解决我的问题。非常感谢。此功能仅适用于lucee服务器。不是adobe coldfusion..:-(另一种解决方法是将其转换为数组,然后再转换回来:
arrayToList(listToArray(removeDups))
。比ListCompact
要难很多,但如果这是一个问题,它与两个引擎都兼容。谢谢你的回答@初学者。它在Adove Coldfusion server中已经可以正常工作了。但我只面临Lucee server的问题。我们不希望为这个问题创建类似的自定义函数。这个问题也通过该函数解决了t比较()。太好了!你的答案对lucee有效。非常感谢:-)初学者一个疑问,这里我们为什么需要为linkedHashMap创建对象??我们是否应该创建一个结构变量来存储循环数据???@SathishK-之所以使用它,是因为a维护了原始列表项的顺序。常规结构不会。@初学者-一个重要的区别是,与CF结构不同,LinkedHashMap是区分大小写的。
sathish
<cfset myUsers = 'sathish,sathish'>
<cfset removeDups = listCompact(listRemoveDuplicates(myUsers))>
<cfdump var="#removeDups#" />
<cffunction name="UDF_listRemoveDuplicates" access="public">
<cfargument name="list" type="string" required="yes">
<!--- Hash Map to maintain the order --->
<cfset local.hashMap = createObject("java", "java.util.LinkedHashMap").init()>
<!--- Add list values as key to Hash Map --->
<cfloop list="#arguments.list#" index="local.value" delimiters=",">
<cfset local.hashMap[local.value] = 1>
</cfloop>
<!--- Return list of Keys --->
<cfreturn structKeyList(local.hashMap, ",")>
</cffunction>
<cfoutput>#UDF_listRemoveDuplicates("sathish,sathish")#</cfoutput>