Ini mungkin salah satu cara tercepat untuk menghapus duplikat secara permanen dari array
10x kali lebih cepat daripada kebanyakan fungsi di sini. & 78x lebih cepat di 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);
- Uji: http://jsperf.com/wgu
- Demo: http://jsfiddle.net/46S7g/
- Lebih lanjut: https://stackoverflow.com/a/25082874/2450730
jika Anda tidak dapat membaca kode di atas tanyakan, baca buku javascript atau di sini ada beberapa penjelasan tentang kode pendek. https://stackoverflow.com/a/21353032/2450730
EDIT
Seperti yang dinyatakan dalam komentar fungsi ini mengembalikan array dengan keunikan, namun pertanyaannya meminta untuk menemukan duplikat. dalam hal ini modifikasi sederhana untuk fungsi ini memungkinkan untuk mendorong duplikat ke dalam array, kemudian menggunakan fungsi sebelumnya toUnique
menghapus duplikat dari duplikat.
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));