C'est probablement l'un des moyens les plus rapides pour supprimer définitivement les doublons d'un tableau
10 fois plus vite que la plupart des fonctions ici. 78 fois plus rapide en safari
function toUnique(a,b,c){//array,placeholder,placeholder
b=a.length;
while(c=--b)while(c--)a[b]!==a[c]||a.splice(c,1)
}
var array=[1,2,3,4,5,6,7,8,9,0,1,2,1];
toUnique(array);
console.log(array);
- Test: http://jsperf.com/wgu
- Démo: http://jsfiddle.net/46S7g/
- Plus: https://stackoverflow.com/a/25082874/2450730
si vous ne pouvez pas lire le code ci-dessus demandez, lisez un livre javascript ou voici quelques explications sur le code plus court. https://stackoverflow.com/a/21353032/2450730
EDIT
Comme indiqué dans les commentaires, cette fonction retourne un tableau avec des uniques, la question demande cependant de trouver les doublons. dans ce cas, une simple modification de cette fonction permet de pousser les doublons dans un tableau, puis l'utilisation de la fonction précédente toUnique
supprime les doublons des doublons.
function theDuplicates(a,b,c,d){//array,placeholder,placeholder
b=a.length,d=[];
while(c=--b)while(c--)a[b]!==a[c]||d.push(a.splice(c,1))
}
var array=[1,2,3,4,5,6,7,8,9,0,1,2,1];
toUnique(theDuplicates(array));