I ran into a problem with a piece of code, with a slight change. I get different results that should not be.
Version 1 gives the correct results, I am facing a problem with version 2, which is the actual code.
Version 1:
<cfset keywords = listToArray("1,2,3,4,5,6,7,8,9,10")> <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)>
Version 2:
<cfset keywords = []> <cfloop from="1" to="10" index="counter"> <cfset arrayAppend( keywords, counter )> </cfloop> <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)>
Outputs:

Here's the gist: Version 1 and Version 2 .
Any suggestions are welcome!
source share