ListRemovedUpplicates结果的末尾有一个逗号

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

在Lucee中使用
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>