11 Möglichkeiten, Duplikate aus JS-Arrays zu entfernen

11 Möglichkeiten, Duplikate aus JS-Arrays zu entfernen

Bei der tatsächlichen Arbeit oder bei Interviews stoßen wir häufig auf das Problem der „Array-Deduplizierung“. Im Folgenden sind verschiedene Methoden zur Array-Deduplizierung aufgeführt, die mit js implementiert wurden:

1. Vergleichen Sie nacheinander jedes Element des Arrays mit anderen Elementen, finden Sie doppelte Elemente und löschen Sie sie

var arr = [1,23,1,1,1,3,23,5,6,7,9,9,8,5,5,5,5];
    konsole.log(arr); //[1, 23, 1, 1, 1, 3, 23, 5, 6, 7, 9, 9, 8, 5, 5, 5, 5]
    Funktion noRepeat1(arr) {
        für(var i = 0; i < arr.length-1; i++){
            für(var j = i+1; j < arr.length; j++){
                wenn (arr[i]===arr[j]){
                    arr.splice(j,1);
                    J--;
                }
            }
        }
        Rückflug an;
    }
    var arr2 = noRepeat1(arr);
    console.log(arr2); //[1, 23, 3, 5, 6, 7, 9, 8]

2. Verwenden Sie die Methode indexOf (), um zu bestimmen, ob der Positionsindex des ersten Auftretens dieses Elements im Array dem Schleifenindex entspricht

var arr = [1,23,1,1,1,3,23,5,6,7,9,9,8,5,5,5];
    konsole.log(arr); //[1, 23, 1, 1, 1, 3, 23, 5, 6, 7, 9, 9, 8, 5, 5, 5]
    Funktion noRepeat2(arr) {
        für (var i = 0; i < arr.length; i++) {
            wenn (arr.indexOf(arr[i]) != i) {
                arr.splice(i,1);//Nach dem Löschen des Array-Elements wird die Array-Länge um 1 reduziert und die folgenden Elemente werden nach vorne verschoben i--;//Array-Index-Rollback}
        }
        Rückflug an;
    }
    var newArr = noRepeat2(arr);
    console.log(newArr); //[1, 23, 3, 5, 6, 7, 9, 8]

3. Verwenden der Filtermethode im Array

var arr = ['Apfel','Banane','Birne','Apfel','Orange','Orange'];
console.log(arr) //["Apfel", "Banane", "Birne", "Apfel", "Orange", "Orange"]
var newArr = arr.filter(Funktion(Wert,Index,selbst){
    gibt self.indexOf(Wert) === Index zurück;
});
console.log(newArr); //["Apfel", "Banane", "Birne", "Orange"]

4. Verwenden Sie das neue Array, um den Index des aktuellen Elements im Array mithilfe der indexOf-Methode zu bestimmen. Wenn es dem Index der Schleife entspricht, fügen Sie es dem neuen Array hinzu.

var arr = [1,23,1,1,1,3,23,5,6,7,9,9,8,5,5,5];
    console.log(arr) //[1, 23, 1, 1, 1, 3, 23, 5, 6, 7, 9, 9, 8, 5, 5, 5]
    Funktion noRepeat4(arr) {
        var ret = [];
        für (var i = 0; i < arr.length; i++) {
            wenn (arr.indexOf(arr[i]) == i) {
                ret.push(arr[i]);
            }
        }
        Rückkehr ret;
    }
    var arr2 = noRepeat4(arr);
    console.log(arr2); //[1, 23, 3, 5, 6, 7, 9, 8]

5. Verwenden Sie leere Objekte, um die bereits im neuen Array gespeicherten Elemente aufzuzeichnen

var arr = [1,23,1,1,1,3,23,5,6,7,9,9,8,5];
    console.log(arr) //[1, 23, 1, 1, 1, 3, 23, 5, 6, 7, 9, 9, 8, 5]
    var obj={};
    var neuesArr = [];
    für(var i=0;i<arr.length;i++){
        wenn(!obj[arr[i]]){
            obj[arr[i]]=wahr;
            newArr.push(arr[i]);
        }
    }
    console.log(newArr); //[1, 23, 3, 5, 6, 7, 9, 8]

6. Bestimmen Sie mithilfe des neuen Arrays, ob das Element im neuen Array vorhanden ist. Wenn nicht, 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];
    konsole.log(arr); //[1, 23, 1, 1, 1, 3, 23, 5, 6, 7, 9, 9, 8, 5]
    Funktion noRepeat6(arr){
        var neuesArr = [];
        für(var i = 0; i < arr.length; i++){
            wenn (newArr.indexOf(arr[i]) == -1) {
                newArr.push(arr[i]);
            }
        }
        gib neuesArr zurück;
    }
    var arr2 = noRepeat6(arr);
    console.log(arr2); //[1, 23, 3, 5, 6, 7, 9, 8]

7. Bestimmen Sie mithilfe des neuen Arrays, ob das Element im neuen Array vorhanden ist. Wenn nicht, fügen Sie das Element dem neuen Array hinzu (die Länge des ursprünglichen Arrays bleibt unverändert, wird jedoch in Zeichenfolgenreihenfolge sortiert).

var arr = [1,23,1,1,1,3,23,5,6,7,9,9,8,5];
    konsole.log(arr); //[1, 23, 1, 1, 1, 3, 23, 5, 6, 7, 9, 9, 8, 5]
    Funktion noRepeat7(arr) {
        var ret = [],
            end; //temporäre Variable zum Vergleichen wiederholter Elemente arr.sort(); //Zahlen neu sortieren end = arr[0];
        ret.push(arr[0]);
        für (var i = 1; i < arr.length; i++) {
            if (arr[i] != end) {//Wenn das aktuelle Element nicht gleich dem temporären Element ist, füge dieses Element dem neuen Array hinzu ret.push(arr[i]);
                Ende = arr[i];
            }
        }
        Rückkehr ret;
    }
    var arr2 = noRepeat7(arr);
    console.log(arr2); //[1, 23, 3, 5, 6, 7, 8, 9]

8. Diese Methode ändert das ursprüngliche Array nicht direkt mit Hilfe eines neuen Arrays, und das Array wird nach der Deduplizierung sortiert

var arr = [1,23,1,1,1,3,23,5,6,7,9,9,8,5];
    konsole.log(arr); //[1, 23, 1, 1, 1, 3, 23, 5, 6, 7, 9, 9, 8, 5]
    Funktion noRepeat8(arr) {
        var end; //temporäre Variable zum Vergleichen wiederholter Elemente arr.sort(); //Zahlen neu sortieren end = arr[0];
        für (var i = 1; i < arr.length; i++) {
            if (arr[i] == end) {//Wenn das aktuelle Element gleich dem temporären Element ist, lösche dieses Element aus dem Array arr.splice(i,1);
                ich--;
            }anders{
                Ende = arr[i];
            }
        }
        Rückflug an;
    }
    var arr2 = noRepeat8(arr);
    console.log(arr2); //[1, 23, 3, 5, 6, 7, 8, 9]

9. Doppelschleife ändert das ursprüngliche Array

var arr = [1,1,2,2,3,3,4,4,5,5,4,3,1,2,6,6,6,6];
    konsole.log(arr); //[1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 4, 3, 1, 2, 6, 6, 6, 6]
    Funktion noRepeat9(arr){
        für (var i = 0; i < arr.length; i++) {
            für (var j = 0; j < arr.length; j++) {
                if (arr[i] == arr[j] && i != j) {//Lösche die wiederholten Zahlen arr.splice(j, 1);
                }
            }
        }
        Rückflug an;
    }
    var arr2 = noRepeat9(arr);
    console.log(arr2); //[1, 2, 3, 4, 5, 6]

10. Mit Hilfe eines neuen Arrays

var arr = [1,1,2,2,3,3,4,4,5,5,4,3,2,1,1,1];
    konsole.log(arr); //[1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 4, 3, 2, 1, 1, 1]
    var neuesArr = [];
    für (var i = 0; i < arr.length; i++) {
        var repArr = []; //Empfange den Index nach den wiederholten Daten //Die innere Schleife findet den Index mit den wiederholten Daten for (var j = i + 1; j < arr.length; j++) {
            wenn (arr[i] == arr[j]) {
                repArr.push(j);//Finde den Index der folgenden wiederholten Daten}
        }
        //Konsole.log(repArr);
        if (repArr.length == 0) {//Wenn das wiederholte Array keinen Wert hat, bedeutet dies, dass es sich nicht um wiederholte Daten handelt. newArr.push(arr[i]);
        }
    }
    console.log(newArr); //[5, 4, 3, 2, 1]

11. Mit Hilfe der von ES6 bereitgestellten Set-Struktur

var arr = [1,1,2,2,3,3,4,4,5,5,4,3,2,1,1,1];
    konsole.log(arr); //[1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 4, 3, 2, 1, 1, 1]
    Funktion noRepeat11(arr){
        var neuesArr = [];
        var myset = new Set(arr); //Verwenden der Funktion, dass die Set-Struktur keine doppelten Daten empfangen kann for(var val of myset){
            newArr.push(Wert)
        }
        gib neuesArr zurück;
    }
    var arr2 = noRepeat11(arr)
    console.log(arr2); //[1, 2, 3, 4, 5]

Oben sind die Details zu 11 Methoden zur JS-Array-Deduplizierung aufgeführt. Weitere Informationen zur JS-Array-Deduplizierung finden Sie in den anderen verwandten Artikeln auf 123WORDPRESS.COM!

Das könnte Sie auch interessieren:
  • Neun erweiterte Methoden zur Deduplizierung von JS-Arrays (erprobt und effektiv)
  • Detaillierte Beispiele für JS-Array-Flattening-, Deduplizierungs- und Sortiervorgänge
  • Deduplizierung von JS-Array-Attributen und Überprüfung doppelter Daten
  • Leistungsstarke JS-Array-Deduplizierung (12 Methoden, die umfassendsten aller Zeiten)
  • Beispiel für Objektdeduplizierung in einem JS-Array
  • Zusammenfassung der Methoden zur JS-Array-Deduplizierung
  • 6 Methoden zur Deduplizierung in JS-Arrays mit vollständigen Beispielen
  • N Methoden zum Entfernen von Duplikaten aus JS-Arrays (Zusammenfassung)
  • Zusammenfassung gängiger Methoden zur Deduplizierung von JS-Arrays [4 Methoden]
  • Details zur JS-Array-Deduplizierung

<<:  MySQL-Onlineprobleme mit langsamem Log und Optimierungslösungen

>>:  Linux Redis-Sentinel-Konfigurationsdetails

Artikel empfehlen

MySql-Abfrageanweisung mit mehreren Bedingungen und dem Schlüsselwort „OR“

Im vorherigen Artikel wurde die MySql-Abfrageanwe...

Eine kurze Diskussion über JS-Verpackungsobjekte

Inhaltsverzeichnis Überblick Definition Instanzme...

Tutorial zur Verarbeitung statischer Ressourcen in Tomcat

Vorwort Alle Anfragen in Tomcat werden von Servle...

HTML lädt dynamisch CSS-Stile und JS-Skripte – Beispiel

1. Dynamisches Laden von Skripten Mit der wachsen...

jQuery-Plugin zum Erreichen eines Bildvergleichs

In diesem Artikelbeispiel wird der spezifische Co...

Analyse der Prinzipien von Docker-Containern

Inhaltsverzeichnis 01 Was ist das Wesen eines Con...

Ändern Sie das JVM-Kodierungsproblem, wenn Tomcat ausgeführt wird

Frage: Vor kurzem traten bei der Bereitstellung d...

Bringen Sie Ihnen bei, wie Sie coole Barcode-Effekte erstellen

Stellungnahme : In diesem Artikel erfahren Sie, w...

Verwenden des CSS-Loaders zum Implementieren des CSS-Moduls in Vue-CLI

【Vorwort】 Sowohl die modularen CSS-Lösungen von V...

Detailliertes Tutorial zur Installation von MySQL 8.0.13 (rpm) auf Centos7

yum oder rpm? Die Yum-Installationsmethode ist se...