从 CF10 的列表中删除重复项
Remove duplicates from a list in CF10
我有以下字符串,但在使用该字符串之前,我想从中删除重复项:
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 函数 listRemoveDuplicates,但这似乎无法解决问题。
它应该看起来像:
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>
输出:
http://website.com/abc.asp?rateTerm=&company=&mva=&pagenum=3&sortOrder=2&product=&rop=&action=SUBMIT&state=&type=298&surrYr=&contribution=&sortBy=1
为了保持顺序,您可以这样定义 tempStruct
:
<cfset tempStruct = structNew()>
<cfset tempStruct = createObject("java", "java.util.LinkedHashMap").init() />
输出:
http://website.com/abc.asp?type=298&action=SUBMIT&product=&contribution=&rateTerm=&surrYr=&mva=&rop=&sortBy=1&sortOrder=2&pagenum=3&company=&state=
当您使用 CF10
时,您也可以像这样使用 ListRemoveDuplicates:
<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>
输出:
http://website.com/abc.asp?type=298&action=SUBMIT&product=&contribution=&rateTerm=&surrYr=&mva=&rop=&sortBy=1&sortOrder=2&pagenum=3&company=&state=
我有以下字符串,但在使用该字符串之前,我想从中删除重复项:
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 函数 listRemoveDuplicates,但这似乎无法解决问题。
它应该看起来像:
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>
输出:
http://website.com/abc.asp?rateTerm=&company=&mva=&pagenum=3&sortOrder=2&product=&rop=&action=SUBMIT&state=&type=298&surrYr=&contribution=&sortBy=1
为了保持顺序,您可以这样定义 tempStruct
:
<cfset tempStruct = structNew()>
<cfset tempStruct = createObject("java", "java.util.LinkedHashMap").init() />
输出:
http://website.com/abc.asp?type=298&action=SUBMIT&product=&contribution=&rateTerm=&surrYr=&mva=&rop=&sortBy=1&sortOrder=2&pagenum=3&company=&state=
当您使用 CF10
时,您也可以像这样使用 ListRemoveDuplicates:
<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>
输出:
http://website.com/abc.asp?type=298&action=SUBMIT&product=&contribution=&rateTerm=&surrYr=&mva=&rop=&sortBy=1&sortOrder=2&pagenum=3&company=&state=