Heim >Web-Frontend >js-Tutorial >Wie implementiert man Array-Deduplizierung in JavaScript? Drei Methoden zum Entfernen von Duplikaten aus Arrays in js (Codebeispiele)

Wie implementiert man Array-Deduplizierung in JavaScript? Drei Methoden zum Entfernen von Duplikaten aus Arrays in js (Codebeispiele)

青灯夜游
青灯夜游Original
2018-10-15 13:37:303917Durchsuche

Wie implementiert man Array-Deduplizierung in JavaScript? In diesem Artikel werden drei gängige Methoden zum Deduplizieren von Arrays in js vorgestellt. Es hat einen gewissen Referenzwert. Freunde in Not können sich darauf beziehen. Ich hoffe, es wird Ihnen hilfreich sein.

Im Folgenden stellen wir drei gängige Methoden der Array-Deduplizierung in js anhand einfacher Codebeispiele vor.

Die erste Methode: for-Schleife (zweimal) + neues Array

Idee:

1 .Construct ein neues Array zum Speichern der Ergebnisse

2. Nehmen Sie in der for-Schleife jedes Mal ein Element aus dem ursprünglichen Array heraus und verwenden Sie diese Elementschleife zum Vergleich mit dem Ergebnisarray

3 Es gibt kein Element im Ergebnisarray. Dieses Element wird im Ergebnisarray gespeichert

//方法一
var arr = [1,23,1,1,1,3,23,5,6,7,9,9,8,5];
function removeDuplicatedItem(arr) {
   for(var i = 0; i < arr.length-1; i++){
       for(var j = i+1; j < arr.length; j++){
           if(arr[i]==arr[j]){
              arr.splice(j,1);//console.log(arr[j]);
              j--;
           }
       }
   }
   return arr;
}

arr2 = removeDuplicatedItem(arr);
console.log(arr);
console.log(arr2);

Die erste Methode kann grundsätzlich unsere Anforderungen erfüllen, für arr = [1,23,1,1,1,3,23, 5,6,7,9,9,8,5] Ein so einfaches Array muss nur einen Typvergleich verwenden, aber was ist, wenn das Array sehr lang ist? Wenn Sie das Array auf diese Weise durchlaufen, beträgt die Länge des Arrays n und die zeitliche Komplexität n * n. Offensichtlich muss die Leistung der ersten Methode verbessert werden. Als nächstes folgt die zweite Methode, bei der die Array-Sortierung verwendet wird, um doppelte Werte während des Sortiervorgangs zu entfernen.

Zweite Methode: for-Schleife (einmal) + sort() Sortierung + neues Array

Die ursprüngliche Array-Länge bleibt unverändert, wird aber als String gedrückt Sortierreihenfolge: Bestimmen Sie mithilfe des neuen Arrays, ob das Element im neuen Array vorhanden ist. Wenn es nicht vorhanden ist, fügen Sie das Element dem neuen Array hinzu.

//方法二
var arr = [1,23,1,1,1,3,23,5,6,7,9,9,8,5];
function removeRepEle(ar) {
    var ret = [],
        end;//临时变量用于对比重复元素
    ar.sort();//将数重新组排序
    end = ar[0];
    ret.push(ar[0]);
    for (var i = 1; i < ar.length; i++) {
        if (ar[i] != end) {//当前元素如果和临时元素不等则将此元素添加到新数组中
            ret.push(ar[i]);
            end = ar[i];
        }
    }
    return ret;
}

arr2 = removeRepEle(arr);
console.log(arr);//[ 1, 1, 1, 1, 23, 23, 3, 5, 5, 6, 7, 8, 9, 9 ]
console.log(arr2);//[ 1, 23, 3, 5, 6, 7, 8, 9 ]

Die zweite Methode weist bestimmte Einschränkungen auf, da die Das Array sortiert zuerst Duplikate und entfernt dann Duplikate. Das zurückgegebene Endergebnis ist also das Ergebnis der Deduplizierung und Sortierung des js-Arrays. Wenn es erforderlich ist, Duplikate zu entfernen, ohne die Reihenfolge des Arrays zu ändern, ist diese Methode nicht ratsam.

Die dritte Methode (empfohlen): for-Schleife (einmal) + neues Array + neues Objekt

Verwenden Sie leere Objekte, um neue Array-Elemente aufzuzeichnen die in

//方法三 
var arr = [1,23,1,1,1,3,23,5,6,7,9,9,8,5];
var o={};
var new_arr=[];
for(var i=0;i<arr.length;i++){
    var k=arr[i];
    if(!o[k]){
        o[k]=true;
        new_arr.push(k);
    }
}
console.log(new_arr);

gespeichert wurden. Zusammenfassung: Das Obige ist der gesamte Inhalt dieses Artikels, ich hoffe, dass er für das Lernen aller hilfreich sein wird. Weitere verwandte Tutorials finden Sie unter JavaScript-Video-Tutorial, jQuery-Video-Tutorial, Bootstrap-Tutorial!

Das obige ist der detaillierte Inhalt vonWie implementiert man Array-Deduplizierung in JavaScript? Drei Methoden zum Entfernen von Duplikaten aus Arrays in js (Codebeispiele). 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