Це, мабуть, один з найшвидших способів назавжди видалити дублікати з масиву в
10 разів швидше, ніж більшість функцій тут. & 78x швидше в сафарі
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);
- Тест: http://jsperf.com/wgu
- Демонстрація: http://jsfiddle.net/46S7g/
- Детальніше: https://stackoverflow.com/a/25082874/2450730
якщо ви не можете прочитати код вище, запитайте, прочитайте книгу javascript або ось кілька пояснень щодо коротшого коду. https://stackoverflow.com/a/21353032/2450730
EDIT
Як зазначено в коментарях, ця функція повертає масив з унікальними елементами, проте питання вимагає знайти дублікати. у такому випадку проста модифікація цієї функції дозволяє висунути дублікати в масив, після чого за допомогою попередньої функції toUnique
видаляються дублікати дублікатів.
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));