Detaillierte Erläuterung mehrerer Methoden zur Deduplizierung im Javascript-Array

Detaillierte Erläuterung mehrerer Methoden zur Deduplizierung im Javascript-Array

Array-Deduplizierung

1 Doppelschichtige For-Schleife (ähnlich dem Schreiben einer Doppelschichtschleife beim Bubblesort)

var arr = [2,3,4,2,34,21,1,12,3,4,1]
für(var i =0;i<arr.length;i++){
    //Erste Ebene: Holen Sie sich bei jedem Durchlauf der Schleife ein Element in arr for(var j=i+1;j<arr.length;j++){
        //Zweite Ebene: Jedes erhaltene Element wird mit den Elementen verglichen, die nacheinander nach jedem erhaltenen Element folgen (da das erste mit dem zweiten verglichen werden sollte, das zweite mit dem dritten und so weiter, also sollte j hier 1 größer als i sein, d. h. j=i+1)
    	wenn (arr[i] === arr[j]){
            //Wenn sie gleich sind, lösche die folgenden Elemente arr.splice(j,1)
    	}
    }
}
//arr:[1, 2, 3, 4, 12, 21, 34]

2 Schleifen und Indexof, Schleifen und Includes

Erstellen Sie ein neues Array, durchlaufen Sie das alte Array und prüfen Sie, ob das Element in jeder Schleife im neuen Array vorhanden ist. Wenn nicht, fügen Sie das aktuelle Element dem neuen Array hinzu.

//Index von
var arr = [2,3,4,2,34,21,1,12,3,4,1]
var arr2 = []
arr.fürJeden((e)=>{
    wenn (arr2.indexOf(e)==-1){
        arr2.push(e)
    }
})
console.log(arr2)
//arr2:[1, 2, 3, 4, 12, 21, 34]
//beinhaltet
var arr = [2,3,4,2,34,21,1,12,3,4,1]
var arr2 = []
arr.fürJeden((e)=>{
    wenn(!arr2.includes(e)){
        arr2.push(e)
    }
})
console.log(arr2)
//arr2:[1, 2, 3, 4, 12, 21, 34]

3. Objektattribute verwenden, um Duplikate zu entfernen

var arr = [2,3,4,2,34,21,1,12,3,4,1]
var obj = {};
arr.fürJeden((e,i)=>{
    obj[arr[i]] = "abc";   
});
var arr2 = Objekt.keys(obj)
console.log(arr2)
//arr2:["1", "2", "3", "4", "12", "21", "34"]
var arr3 = arr2.map(e => ~~e)
//arr3:[1, 2, 3, 4, 12, 21, 34]
//Beachten Sie, dass diese Methode nicht nur das Array neu anordnet, sondern auch den Typ der Elemente im Array ändert

~ ist der bitweise Negationsoperator in JS. ~~ bedeutet, dass die bitweise Negation zweimal durchgeführt wird, wodurch der ursprüngliche Wert tatsächlich erhalten bleibt. Beachten Sie jedoch, dass, obwohl es sich um den ursprünglichen Wert handelt, diese Operation auf einer Booleschen Variable ausgeführt wird, diese in die entsprechende numerische Variable umgewandelt wird, d. h. ~~true === 1, ~~false === 0.

4 ES6-Satz

ES6 bietet ein neues Datenstruktur-Set. Es ähnelt einem Array, aber die Mitgliedswerte sind eindeutig und es gibt keine doppelten Werte.

var arr = [2,3,4,2,34,21,1,12,3,4,1]
var arr1 = [...neues Set(arr)]
console.log(arr1)
//arr1:[1, 2, 3, 4, 12, 21, 34]

5 ES6 Array. Prototyp. Filter()

Hinweis: Wenn indexOf nach einem Element in einem Array sucht, gibt es den Index des ersten Elements zurück, das die Kriterien erfüllt.

var arr = [2,3,4,2,34,21,1,12,3,4,1]
var arr2 = arr.filter((e,i)=>{
    // Überprüfen Sie, ob die erste Indexposition des Elements in jeder Schleife (die von indexOf zurückgegebene Position) und der Index des Elements in jeder Schleife (i in jeder Filterschleife) übereinstimmen. Wenn sie übereinstimmen, bedeutet dies, dass es das erste ist, das die Bedingungen erfüllt und nicht herausgefiltert wird.
    gibt arr.indexOf(e)==i zurück;
})
console.log(arr2)
//arr2:[1, 2, 3, 4, 12, 21, 34]

6 ES6-Array. Prototyp. Reduzieren()

var arr = [2,3,4,2,34,21,1,12,3,4,1]
var arr2 = arr.reduce((pre,e)=>{
    //Natürlich können Sie hier auch indexOf verwenden, um zu bestimmen, ob pre.includes(e) existiert?pre:pre.push(e);
    Rückkehr vor
},[])
console.log(arr2)
//arr2:[1, 2, 3, 4, 12, 21, 34]

Zusammenfassen

Dieser Artikel endet hier. Ich hoffe, er kann Ihnen helfen. Ich hoffe auch, dass Sie mehr Inhalten auf 123WORDPRESS.COM mehr Aufmerksamkeit schenken können!

Das könnte Sie auch interessieren:
  • Detaillierte Untersuchung des Problems der Array-Deduplizierung in JavaScript
  • JavaScript-Array-Deduplizierungslösung
  • Detaillierte Erklärung der JavaScript-Array-Deduplizierung
  • JavaScript verwendet häufig Array-Deduplizierung tatsächliche Kampf Quellcode
  • Beispiele und Vergleich von 3 Methoden zur Deduplizierung von JS-Objekt-Arrays
  • js konvertiert ein mehrdimensionales Array in ein eindimensionales Array und ordnet es dann neu
  • Detaillierte Diskussion mehrerer Methoden zur Deduplizierung von JavaScript-Arrays

<<:  Lösung für das 404-Problem der Tomcat-Installation in Docker

>>:  Memcached-Methode zum Erstellen eines Cache-Servers

Artikel empfehlen

So installieren Sie MySQL 8.0 in Docker

Umgebung: MacOS_Cetalina_10.15.1, Mysql8.0.18, Do...

PageSpeed ​​Optimierung im Überblick

Ich glaube, dass das Internet zu einem immer unve...

Tipps zum Organisieren von Zeichenfolgen in Linux

Bei Linux-Operationen ersetzen und zählen wir häu...

Beispiele für einige Verwendungstipps für META-Tags in HTML

HTML-Meta-Tag HTML-Meta-Tags können verwendet wer...

Implementierung der Nginx-Domänennamenweiterleitung

Einführung in Nginx Nginx („engine x“) ist ein le...

Vergleichende Analyse von MySQL Binlog-Protokollverarbeitungstools

Inhaltsverzeichnis Kanal Maxwell Datenbus Datenüb...

Was wir von Googles neuer Benutzeroberfläche (Bilder und Text) lernen können

Die bedeutendste Website-Änderung im Jahr 2011 bet...

Beispielverwendung des Linux-Komprimierungsdateibefehls „zip“

Das „.zip“-Format wird zum Komprimieren von Datei...

Tutorial zur Installation von Apache 2.4.41 unter Windows 10

1. Installation und Konfiguration von Apache 2.4....

Eine kurze Diskussion über den CSS-Kaskadierungsmechanismus

Warum hat CSS einen Kaskadierungsmechanismus? Da ...

Detaillierte Erklärung der MySQL-Grundoperationen (Teil 2)

Vorwort Dieser Artikel enthält 1. Mehrere wesentl...

Beispielcode zur Implementierung der Formularvalidierung mit reinem CSS

In unserem täglichen Geschäft ist die Formularval...