Heim  >  Artikel  >  Web-Frontend  >  Empfohlen werden zwei Methoden zur Deduplizierung von JavaScript-Arrays_Javascript-Kenntnissen

Empfohlen werden zwei Methoden zur Deduplizierung von JavaScript-Arrays_Javascript-Kenntnissen

WBOY
WBOYOriginal
2016-05-16 15:06:361430Durchsuche

1. Array-Deduplizierung

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

Methode 1: 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 2:

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;
}

Methode 2, Die allgemeine Idee besteht darin, die Array-Elemente einzeln in ein anderes Array zu übertragen. Überprüfen Sie während des Übertragungsvorgangs, ob das Element dupliziert ist, und wenn ja, entsorgen Sie es direkt. 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. Zufälligerweise ist die Implementierung von Hashtable in Javascript äußerst einfach. 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;
}

Die beiden oben genannten empfohlenen Methoden zum Deduplizieren von JavaScript-Arrays sind alle vom Herausgeber freigegebenen Inhalte. Ich hoffe, dass sie Ihnen eine Referenz geben können, und ich hoffe, dass Sie Script Home unterstützen.

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