Beim Schreiben von Programmen müssen wir häufig doppelte Elemente aus einem Array entfernen. Für kleine Arrays können wir dazu eine Doppelschleife verwenden. Aber wenn unser Array relativ groß ist, enthält es Zehntausende von Elementen. Dann ist die Verwendung einer Doppelzirkulation äußerst ineffizient. Jetzt werden wir die Funktionen von js nutzen, um eine effiziente Methode zum Entfernen doppelter Elemente aus einem Array zu schreiben.
<script> function unique(data){ data = data || []; var a = {}; for (var i=0; i<data.length; i++) { var v = data[i]; if (typeof(a[v]) == 'undefined'){ a[v] = 1; } }; data.length=0; for (var i in a){ data[data.length] = i; } return data; } function test(){ var arr = [9,1,3,8,7,7,6,6,5,7,8,8,7,4,3,1]; var arr1 = unique(arr); alert(arr1.join(",")); } test(); </script>
Ausgabeergebnis:
9,1,3,8,7,6,5,4
JS-Array-Deduplizierung besteht darin, doppelte Elemente im Array zu entfernen:
Array.prototype.delRepeat=function(){ var newArray=new Array(); var len=this.length; for (var i=0;i<len ;i++){ for(var j=i+1;j<len;j++){ if(this[i]===this[j]){ j=++i; } } newArray.push(this[i]); } return newArray; }
Aber es ist offensichtlich, dass eine for-Schleife in eine andere for-Schleife eingebettet ist, was bei der Verarbeitung großer Datenmengen sehr zeitaufwändig sein muss. Nach der Suche und der Beratung durch Experten ist dies der Fall! optimiert:
Array.prototype.delRepeat=function(){ var newArray=[]; var provisionalTable = {}; for (var i = 0, item; (item= this[i]) != null; i++) { if (!provisionalTable[item]) { newArray.push(item); provisionalTable[item] = true; } } return newArray; }
besteht darin, ein temporäres ProvisionalTable-Objekt zu verwenden und den Wert des Arrays als Schlüsselwert des ProvisionalTable-Objekts zu verwenden. Wenn der entsprechende Wert nicht vorhanden ist, verschieben Sie den Wert dieses Arrays ein neues Array.
Das obige ist der detaillierte Inhalt vonAusführliche Erläuterung von Ideen und Codebeispielen zum Entfernen doppelter Elemente aus einem Array in JavaScript. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!