यह संभवतः
यहां सबसे अधिक कार्यों की तुलना में किसी सरणी से 10x गुना तेजी से डुप्लिकेट को स्थायी रूप से हटाने का सबसे तेज़ तरीका है। और सफारी में 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
यदि आप ऊपर दिए गए कोड को नहीं पूछ सकते हैं, तो एक जावास्क्रिप्ट पुस्तक पढ़ें या यहां छोटे कोड के बारे में कुछ स्पष्टीकरण दिए गए हैं। https://stackoverflow.com/a/21353032/2450730
संपादित करें
जैसा कि टिप्पणियों में कहा गया है कि यह फ़ंक्शन एक सरणी को uniques के साथ लौटाता है, सवाल हालांकि डुप्लिकेट खोजने के लिए कहता है। उस स्थिति में इस फ़ंक्शन के लिए एक सरल संशोधन डुप्लिकेट को एक सरणी में धकेलने की अनुमति देता है, फिर पिछले फ़ंक्शन का उपयोग करके 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));