Heim  >  Artikel  >  Web-Frontend  >  Zusammenfassung von JavaScript-Methodenbeispielen zum Entfernen doppelter Elemente aus einem Array

Zusammenfassung von JavaScript-Methodenbeispielen zum Entfernen doppelter Elemente aus einem Array

伊谢尔伦
伊谢尔伦Original
2017-07-22 14:07:291367Durchsuche

Array-Deduplizierung;

Der Array-Typ bietet keine Deduplizierungsmethode. Wenn Sie doppelte Elemente aus dem Array entfernen möchten, müssen Sie selbst einen Weg finden:

Methode eins: Verwenden Sie die indexOf-Methode;


var aa=[1,3,5,4,3,3,1,4]
function arr(arr) {
  var result=[]
  for(var i=0; i<arr.length; i++){
    if(result.indexOf(arr[i])==-1){
      result.push(arr[i])
    }
  }
  console.log(result)
}      
arr(aa)

Methode zwei:


function unique(arr) {
  var result = [], isRepeated;
  for (var i = 0, len = arr.length; i < len; i++) {
    isRepeated = false;
    for (var j = 0, len = result.length; j < len; j++) {
      if (arr[i] == result[j]) {  
        isRepeated = true;
        break;
      }
    }
    if (!isRepeated) {
      result.push(arr[i]);
    }
  }
  return result;
}

Die allgemeine Idee besteht darin, Array-Elemente einzeln auf ein anderes Array zu übertragen. Während des Übertragungsvorgangs wird überprüft, ob sie dupliziert sind. Wenn dies der Fall ist, werden sie direkt verworfen. Wie aus verschachtelten Schleifen hervorgeht, ist diese Methode äußerst ineffizient. Wir können eine Hashtabellenstruktur verwenden, um vorhandene Elemente aufzuzeichnen, sodass die innere Schleife vermieden werden kann. Es ist einfach so, dass die Implementierung von Hashtable in Javascript extrem einfach ist. Die Verbesserungen sind wie folgt:


function unique(arr) {
  var result = [], hash = {};
  for (var i = 0, elem; (elem = arr[i]) != null; i++) {
    if (!hash[elem]) {
      result.push(elem);
      hash[elem] = true;
    }
  }
  return result;
}

Das obige ist der detaillierte Inhalt vonZusammenfassung von JavaScript-Methodenbeispielen zum Entfernen doppelter Elemente aus einem Array. 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