Como remover valores repetidos de uma lista?
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 (jeff@members.evolt.org)
* @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>
0 responses to “Como remover valores repetidos de uma lista?”