Remove Duplicados //Repositório JavaScript

Descrição

Remove valores duplicados em um array.
Criado: 2005.08.13 - Modificado 2005.11.19

Código (Download)

//+ Carlos R. L. Rodrigues
//@ http://jsfromhell.com/array/remove-duplicated [rev. #3]

removeDuplicated = function(a, s){
    var p, i, j;
    if(s) for(i = a.length; i > 1;){
        if(a[--i] === a[i - 1]){
            for(p = i - 1; p-- && a[i] === a[p];);
            i -= a.splice(p + 1, i - p - 1).length;
        }
    }
    else for(i = a.length; i;){
        for(p = --i; p > 0;)
            if(a[i] === a[--p]){
                for(j = p; p-- && a[i] === a[p];);
                i -= a.splice(p + 1, j - p).length;
            }
    }
    return a;
};

Exemplo (Exemplo)

<script type="text/javascript">
//<![CDATA[

a = [0,1,4,1,2,3,5,5,3,7,0,6,0,1];
b = a.slice().sort();

document.write(
    "<h2>Matriz desordenada</h2>A = ", a.join(","),
    "<br />removeDuplicated(A) = ", removeDuplicated(a),
    "<br /><h2>Matriz pr?-ordenada</h2>B = ", b.join(","),
    "<br />removeDuplicated(B, true) = ", removeDuplicated(b, true)
);

//]]>
</script>

Ajuda

removeDuplicated(vetor: Array, [sorted: Boolean = false]): Array
Retorna array sem os valores duplicados.
vetor
vetor que será analizado
sorted
passe true somente se a array já estiver ordenada, para obter melhor performance

Ranque (Votos: 21)

2.62