Heim > Artikel > Web-Frontend > JS implementiert einen Array-Deduplizierungsalgorithmus
Dieses Mal werde ich Ihnen JS zur Implementierung des Array-Deduplizierungsalgorithmus vorstellen. Was sind die Vorsichtsmaßnahmen für JS zur Implementierung des Array-Deduplizierungsalgorithmus? Das Folgende 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:
Detaillierte Erläuterung der Anwendungsfälle der JS-Rückruffunktion
Was sind die Vorsichtsmaßnahmen im tatsächlichen Kampf von React Navigation
Das obige ist der detaillierte Inhalt vonJS implementiert einen Array-Deduplizierungsalgorithmus. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!