«

»

Aug 26

Print this Post

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 ([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>

by Jeremy Petersen

Permanent link to this article: http://ensina.me/coldfusion/como-remover-valores-repetidos-de-uma-lista/

Leave a Reply