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

So verwenden Sie Filter zur Implementierung der Überwachung in Zabbix

Als ich kürzlich an Überwachungsgeräten arbeitete...

Installations-Tutorial zur MySQL 5.7.17 Zip-Paketversion unter Win10

Das Installationstutorial für mysql5.7.17 wird Ih...

Lösung für das Problem, dass Docker-Protokolle nicht abgerufen werden können

Als ich den Dienst täglich überprüfte und mir die...

Tiefgreifendes Verständnis der Verwendung von r2dbc in MySQL

Einführung MySQL sollte eine sehr häufig verwende...

15 JavaScript-Funktionen, die es wert sind, gesammelt zu werden

Inhaltsverzeichnis 1. Zahlen umkehren 2. Holen Si...

Erfahren Sie, wie Sie Vue3 Reactivity implementieren

Inhaltsverzeichnis Vorwort Start Ein kleiner Geda...

Beispiele für Vorschaufunktionen für verschiedene Dateitypen in vue3

Inhaltsverzeichnis Vorwort 1. Vorschau der Office...

Der visuelle Designpfad der Website sollte den Benutzergewohnheiten entsprechen

Cooper sprach über den visuellen Pfad des Benutze...

Detaillierte Erläuterung des Lesevorgangs für Nginx-Anforderungsheaderdaten

Im vorherigen Artikel haben wir erklärt, wie ngin...