How do I remove repeated values from a list?

The ListDeleteDuplicates(list) UDF found on cflib is a great example of how to accomplish this task.

The UDF works by creating a copy of the list. Before it adds an item to the new list, it checks to see if it doesn't already exist.

 * 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 ( 
 * @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;

Example of calling this UDF

<cfset myList = "apples,oranges,apples,bananas,ORANGES">
List before removing dupes: #myList#<br>
List after removing dupes: #ListDeleteDuplicates(myList)#

This question was written by Jeremy Petersen
It was last updated on December 12, 2006.




comments powered by Disqus