我正面臨着一段代碼的問題,稍作修改我得到了不同的結果,應該不是這樣。ColdFusion中數組的奇怪行爲
版本1給出了正確的結果,我正面臨與實際代碼版本2的問題。
版本1:
<cfset keywords = listToArray("1,2,3,4,5,6,7,8,9,10")>
<!--- Common Code Below --->
<cfoutput>#getMetadata(keywords).getName()#</cfoutput>
<cfset toBeAdded = keywords>
<cfset toBeInactivated = listToArray("1,3,4,6,8")>
<cfset toBeActivated = toBeInactivated>
<cfset toBeAdded.removeAll(toBeInactivated)>
<cfset toBeInactivated.removeAll(keywords)>
<cfset toBeActivated.retainAll(keywords)>
版本2:
<cfset keywords = []>
<cfloop from="1" to="10" index="counter">
<cfset arrayAppend(keywords, counter)>
</cfloop>
<!--- If I add following line here then it is working as expected and similar to version 1: --->
<!--- <cfset keywords = listToArray(arrayToList(keywords))> --->
<!--- Common Code Below --->
<cfoutput>#getMetadata(keywords).getName()#</cfoutput>
<cfset toBeAdded = keywords>
<cfset toBeInactivated = listToArray("1,3,4,6,8")>
<cfset toBeActivated = toBeInactivated>
<cfset toBeAdded.removeAll(toBeInactivated)>
<cfset toBeInactivated.removeAll(keywords)>
<cfset toBeActivated.retainAll(keywords)>
輸出:
任何建議,非常感謝!
在完成我的工作之前,您已經完成了答案。我想補充的唯一的事情是,你可以得到正矢量二經用'arrayAppend(關鍵字鑄造值的字符串匹配一個版本,JavaCast(「字符串」,計數器)'。 – Twillen
好一點@Twillen。感謝您的。 –
啊,這並沒有打動我,謝謝:) – Beginner