Heim  >  Artikel  >  Web-Frontend  >  Beispiel für einen JavaScript-Array-Deduplizierungsalgorithmus

Beispiel für einen JavaScript-Array-Deduplizierungsalgorithmus

一个新手
一个新手Original
2018-05-23 14:56:382479Durchsuche

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn