Dieser Artikel stellt hauptsächlich den JavaScript-Array-Deduplizierungsalgorithmus vor und fasst und analysiert die Lese-, Schreib-, Durchlauf-, Vergleichs-, Sortier- und anderen Vorgänge im Zusammenhang mit der JavaScript-Array-Deduplizierung sowie Implementierungstechniken im Zusammenhang mit der Algorithmusverbesserung in Form von Beispielen. Freunde in Not können sich auf Folgendes beziehen:
Das Beispiel in diesem Artikel fasst den JavaScript-Array-Deduplizierungsalgorithmus zusammen. Teilen Sie es als Referenz mit allen. Die Details lauten wie folgt:
Testfall: arr = ["1",3,"1",1,4,5,1,"2",5, 1,{" name":"li","age":20},2,4,3,{"name":li","age":20},""];
Methode 1: Mit Hilfe von temporärem Array und indexOf beträgt die Komplexität des Algorithmus: O(n^2)
function unique1(arr){ var temp = []; for(var i=0; i<arr.length; i++){ if(temp.indexOf(arr[i]) == -1){ temp.push(arr[i]); } } return temp; }
Testergebnis: unique1(arr) : ["1" , 3, 1, 4, 5, "2", Object { name="li", age=20}, 2, Object { name="li", age=20}, ""]
Fehler Objekte können nicht unterschieden werden
Methode 2: Verwenden Sie das Object-Objekt in JavaScript als Hash-Tabelle
function unique2(arr){ var temp=[]; var hash={}; for(var i=0; i<arr.length;i++){ if(!hash[arr[i]]){ hash[arr[i]]=true; temp.push(arr[i]); } } return temp; }
Testergebnis: unique2(arr ): [" 1", 3, 4, 5, "2", Object { name="li", age=20}, ""]
Fehler: Kann nicht unterschieden werden: 1 und "1"
Ändern
function unique2(arr){ var temp=[]; var hash={}; for(var i=0; i<arr.length;i++){ var item = arr[i]; var key = typeof(item)+item; if(!hash[key]){ hash[key]=true; temp.push(arr[i]); } } return temp; }
Testergebnis: unique2(arr): ["1", 3, 1, 4, 5, "2", Object { name="li", age =20}, 2 , ""]
Methode 3: Verwenden Sie zuerst sort, um das Array zu sortieren, und verwenden Sie dann ein temporäres Array, um das letzte Element desselben Elements zu speichern wird für Arrays vom reinen Zahlentyp verwendet
function unique3(arr){ arr.sort(function(a,b){ return a-b; }); var temp = []; for(var i=0;i<arr.length;i++){ if(arr[i] !== arr[i+1]){ temp.push(arr[i]); } } return temp; }
Ich habe das Obige für Sie zusammengestellt und hoffe, dass es Ihnen in Zukunft hilfreich sein wird.
Verwandte Artikel:
Ajax-Übertragung von JSON-Beispielcode
Ajax verwendet JSON, um die Datenübertragung zu realisieren
Ajax-Bestätigungscode für doppelte Implementierung
Das obige ist der detaillierte Inhalt vonBeispiel für einen JavaScript-Array-Deduplizierungsalgorithmus. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!