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

Installationsprozess des 64-Bit-Quellcodes von CentOs7 MySQL 5.6.40

1. Installieren Sie zuerst die Abhängigkeitspaket...

Detaillierte Analyse von Absturzfällen bei MySQL-Instanzen

[Problembeschreibung] Unsere Produktionsumgebung ...

js, um ein Wasserfall-Flusslayout zu erreichen (unendliches Laden)

In diesem Artikelbeispiel wird der spezifische Co...

Linux-Swap-Partition (ausführliche Erklärung)

Inhaltsverzeichnis linux 1. Was ist SWAP 2. Was p...

So ziehen Sie das Docker-Image herunter, um die Version anzuzeigen

Um die Version und das Tag des Bildes anzuzeigen,...

So gestalten Sie das Frontend einer Website elegant und attraktiv für Benutzer

Das Temperament einer Web-Frontend-Website ist ein...

In einem Artikel erfahren Sie, wie Sie mit js den Sperrfeuereffekt erzielen

Inhaltsverzeichnis Erstellen Sie eine neue HTML-D...

Vue verwendet Canvas, um den Bildkomprimierungs-Upload zu realisieren

In diesem Artikel wird der spezifische Code von V...

So drucken Sie hervorgehobenen Code in der Node.JS-Konsole

Vorwort Wenn der Code ausgeführt wird und ein Feh...

Geben Sie einige Tipps zur Verwendung von JavaScript-Operatoren

Inhaltsverzeichnis 1. Optionaler Verkettungsopera...