Schnittmenge, Vereinigung und Differenz von Arrays in JavaScript EcmaScrip 7

Blog

Schnittmenge, Vereinigung und Differenz von Arrays in JavaScript EcmaScrip 7

Wenn Sie anfangen, mit tatsächlichen Projekten zu arbeiten, kann es vorkommen, dass Sie Elemente finden müssen, die in einem Array vorhanden sind und in einem anderen nicht vorhanden sind. Dies ist im Grunde der Unterschied der Arrays. Ebenso müssen Sie möglicherweise auch die Vereinigung und den Schnittpunkt zwischen zwei Arrays finden.



In diesem Artikel erkläre ich, wie Sie auf einfachste Weise die oben beabsichtigte Ausgabe erhalten. Wir verwenden die |_+_| Methode von ES7, um dies zu erreichen.






Überschneidung (A ∩ B)



Mondpiraten-Kryptoadresse

Die Schnittmenge liefert uns die Elemente, die beide Arrays gemeinsam haben.



Array.includes()






Die obige Implementierung ist nicht nur auf Zahlen beschränkt. Es kann auch auf jeden Datentyp angewendet werden.

Differenz (A - A ∩ B)

let intersection = arr1.filter(x => arr2.includes(x));

Die Differenz gibt die Elemente aus |_+_| . aus die nicht in |_+_| stehen.

Wenn Sie die gleiche Ausgabe mit Vanilla JS erhalten möchten, verwenden Sie den folgenden Code.

let difference = arr1.filter(x => !arr2.includes(x));

Vergleichen Sie dies mit zwei Codezeilen in ES7. Ziemlich nützlich, oder?

Symmetrische Differenz (A + B - A ∩ B)

In diesem Fall erhalten Sie ein Array mit allen Elementen von |_+_| die nicht in |_+_| stehen und umgekehrt.

arr1

Gewerkschaft ( A∪ B)

Die Gewerkschaft muss die einfachste von allen sein. Am Ende sollte das Ergebnis alle Elemente von A, alle von B oder beides sein.

Wir können einfach den Spread-Operator von JavaScript verwenden, um eine Union zu erstellen.

Wenn Sie genau hinsehen, werden Sie feststellen, dass einige der sich überschneidenden Elemente in der obigen Ausgabe wiederholt wurden. Um dies zu vermeiden, sollten wir das JavaScript Set Object verwenden. Wieso den? Weil Sets in JavaScript nur verschiedene Elemente enthalten. Aus diesem Grund werden Sie keine Duplikate wie oben haben.

Themen

Wenn Sie die obigen Implementierungen auf Arrays mit einer großen Anzahl von Elementen ausführen, wird sie ziemlich langsam, da sie eine Komplexität von O(n²) hat. In diesen Situationen können Sie ein JavaScript-Dienstprogramm wie z Lodash . Diese Bibliothek bietet die bestmögliche Implementierung für solche Szenarien.

Sie sollten die unten aufgeführten Funktionen verwenden, um die oben beschriebenen Ausgaben zu erzielen.

  • |_+_| - Unterschied
  • |_+_| — symmetrische Differenz
  • |_+_| — Kreuzung
  • |_+_| — Gewerkschaft

Das war's für diesen Artikel.

Viel Spaß beim Codieren! Dankeschön !

#javascript #EcmaScript #es7 #Entwickler