您所期待的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=
你有什麼期望完成的字符串是什麼樣子?你能告訴我們你是如何調用這個函數的嗎?你在哪個版本的CF上;如果CF 10或更高版本,您可以使用原生[ListRemoveDuplicates](https://wikidocs.adobe.com/wiki/display/coldfusionen/ListRemoveDuplicates)函數 – duncan
請參閱我的更新問題 – cfsammer
與你正在嘗試做什麼的實際輸出?向我們展示您使用的代碼。 –