Dieses Mal zeige ich Ihnen, wie Sie den JS-Array-Deduplizierungsalgorithmus implementieren und welche Vorsichtsmaßnahmen für die Implementierung des JS-Array-Deduplizierungsalgorithmus gelten. Hier ist ein praktischer Fall, schauen wir uns das an.
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 Algorithmuskomplexität: 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; }
Testergebnisse:
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 zur Behandlung das Objektobjekt in JavaScript it Griechische 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 unterscheiden: 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 der gleichen Elemente zu speichern. Diese Methode kann nur für pure verwendet werden Zahlentyp-Arrays
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 glaube, dass Sie die Methode beherrschen, nachdem Sie den Fall in diesem Artikel gelesen haben. Weitere spannende Informationen finden Sie in anderen verwandten Artikeln auf der chinesischen PHP-Website!
Empfohlene Lektüre:
Wie man Angular bedient, um Datenanforderungen zu implementieren
Wie man einen Knoten betreibt und asynchron zur Steuerung verwendet Parallelität
Das obige ist der detaillierte Inhalt vonSo implementieren Sie den JS-Array-Deduplizierungsalgorithmus. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!