Coldfusion 从CF10中的列表中删除重复项

Coldfusion 从CF10中的列表中删除重复项,coldfusion,coldfusion-10,Coldfusion,Coldfusion 10,我有以下字符串,但在使用此字符串之前,我想删除其中的重复项: http://website.com/abc.asp?type=298&action=SUBMIT&product=&contribution=&rateTerm=&surrYr=&mva=&rop=&sortBy=1&sortOrder=2&pagenum=3&company=&product=&state=&contri

我有以下字符串,但在使用此字符串之前,我想删除其中的重复项:

http://website.com/abc.asp?type=298&action=SUBMIT&product=&contribution=&rateTerm=&surrYr=&mva=&rop=&sortBy=1&sortOrder=2&pagenum=3&company=&product=&state=&contribution=&rateTerm=&surrYr=&mva=&rop=
我尝试使用cflib函数,但这似乎无法解决问题

它应该是这样的:

http://website.com/abc.asp?type=298&action=SUBMIT&product=&contribution=&rateTerm=&surrYr=&mva=&rop=&sortBy=1&sortOrder=2&pagenum=3

我使用的是cf10。

您期望的cfoutput也应该有
company=&state=
。因为它们也是不同的。因此,考虑到这一点,您可以尝试一下:

<cfset url = "http://website.com/abc.asp?type=298&action=SUBMIT&product=&contribution=&rateTerm=&surrYr=&mva=&rop=&sortBy=1&sortOrder=2&pagenum=3&company=&product=&state=&contribution=&rateTerm=&surrYr=&mva=&rop=">

<!--- Get domain name and query string --->
<cfset domainName = listGetAt(url , 1, "?")>
<cfset queryString = listGetAt(url , 2, "?")>
<cfset tempStruct = structNew()>
<cfloop list="#queryString#" index="currentString" delimiters="&">
    <cfset tempStruct[ currentString ] = "">
</cfloop>
<cfset queryString = structKeyList(tempStruct,"&")>
<cfset newUrl = domainName & "?" & queryString>
为了保持顺序,可以如下定义
tempStruct

<cfset tempStruct = structNew()>
<cfset tempStruct = createObject("java", "java.util.LinkedHashMap").init() />
<cfset url = "http://website.com/abc.asp?type=298&action=SUBMIT&product=&contribution=&rateTerm=&surrYr=&mva=&rop=&sortBy=1&sortOrder=2&pagenum=3&company=&product=&state=&contribution=&rateTerm=&surrYr=&mva=&rop=">

<!--- Get domain name and query string --->
<cfset domainName = listGetAt(url , 1, "?")>
<cfset queryString = listGetAt(url , 2, "?")>
<cfset queryString = listRemoveDuplicates(queryString, "&")>
<cfset newUrl = domainName & "?" & queryString>
当您使用
CF10
时,也可以这样使用:

<cfset tempStruct = structNew()>
<cfset tempStruct = createObject("java", "java.util.LinkedHashMap").init() />
<cfset url = "http://website.com/abc.asp?type=298&action=SUBMIT&product=&contribution=&rateTerm=&surrYr=&mva=&rop=&sortBy=1&sortOrder=2&pagenum=3&company=&product=&state=&contribution=&rateTerm=&surrYr=&mva=&rop=">

<!--- Get domain name and query string --->
<cfset domainName = listGetAt(url , 1, "?")>
<cfset queryString = listGetAt(url , 2, "?")>
<cfset queryString = listRemoveDuplicates(queryString, "&")>
<cfset newUrl = domainName & "?" & queryString>

您希望完成的字符串是什么样子的?你能告诉我们你是如何调用这个函数的吗?您使用的是哪一版本的CF;如果CF 10或更高,您可能可以使用本机函数。请参阅我更新的问题与您尝试执行的操作中的实际输出相比,预期输出是什么?向我们展示您使用过的代码。您是否尝试过使用CF10中内置的ListRemovedUpplicates函数?但这似乎无法解决有点模糊的问题:)您需要向我们展示您尝试过的代码,并解释结果与您预期的不同。仅包括所需的代码。
http://website.com/abc.asp?type=298&action=SUBMIT&product=&contribution=&rateTerm=&surrYr=&mva=&rop=&sortBy=1&sortOrder=2&pagenum=3&company=&state=