A UDF (user defined function) ListDeleteDuplicates(list) achada em bibliotecas CF (cflib.org) é um grande exemplo de como executar esta tarefa.
A UDF funciona criando uma cópia da lista. Antes de adicionar um item à nova lista, ela verifica se o item já existe.
<cfscript> /** * Case-sensitive function for removing duplicate entries in a list. * Based on dedupe by Raymond Camden * * @param list The list to be modified. * @return Returns a list. * @author Jeff Howden ([email protected]) * @version 1, March 21, 2002 */ function ListDeleteDuplicates(list) { var i = 1; var delimiter = ','; var returnValue = ''; if(ArrayLen(arguments) GTE 2) delimiter = arguments[2]; list = ListToArray(list, delimiter); for(i = 1; i LTE ArrayLen(list); i = i + 1) if(NOT ListFind(returnValue, list[i], delimiter)) returnValue = ListAppend(returnValue, list[i], delimiter); return returnValue; } </cfscript>
Exemplo de como chamar essa UDF:
<cfset myList = "apples,oranges,apples,bananas,ORANGES"> <cfoutput> List before removing dupes: #myList#<br> List after removing dupes: #ListDeleteDuplicates(myList)# </cfoutput>