Grundlegendes zu Sets mit JavaScript

Sets können sehr leistungsfähig sein, wenn Sie deren Verwendung verstehen. Einige Anwendungen von Sätzen umfassen das Lösen von Zählproblemen, bei denen Sie die Anzahl der Möglichkeiten ermitteln können, auf die Sie Elemente gruppieren können. 

Eine andere Anwendung sind Probleme, bei denen Sie Beziehungen zwischen Elementen suchen müssen. Die ECMAScript-Spezifikation enthält keine Methoden für das Arbeiten mit Sets auf diese Weise. Es ist jedoch möglich, eigene zu erstellen. 

Es folgt ein Überblick über die Mengenlehre mit praktischen Anwendungen, mit denen Sie die JavaScript-Funktionen erweitern und komplexere Probleme lösen können.

Inhalt

  • Grundlagen
  • Union
  • Überschneidung
  • Unterschied
  • Symmetrischer Unterschied
  • Ergänzen
  • Rezension

Grundlagen

Ein Set ist eine ungeordnete Sammlung von Elementen, die alle eindeutig sind. Zum Beispiel ist die Liste aller Mitarbeiter an Ihrer Arbeit eine Menge. Jeder Mitarbeiter wäre ein Element in der Gruppe. In der Realität würden diese Elemente mit einer ID- oder Sozialversicherungsnummer gespeichert, da diese Werte für uns eindeutig sind. Beachten Sie, dass die Reihenfolge dieser Elemente für uns irrelevant ist, da das Sortieren von IDs oder Sozialversicherungsnummern keine Bedeutung hat.  

Wir bezeichnen unsere Mitarbeitergruppe als universelle Gruppe, da sie alle betrachteten Elemente enthält. Stellen wir uns ein anderes Set vor. Dieses Set enthält die Liste der Mitarbeiter Ihres Unternehmens, die in der Konstruktionsabteilung arbeiten. Dies ist eine Teilmenge unseres Mitarbeiter-Sets, da jedes Element des Engineering-Sets auch im Mitarbeiter-Set vorhanden ist. Eine weitere Untergruppe ist die Liste der Mitarbeiter, die freiberuflich tätig sind. So würden wir diese Sets in JavaScript erstellen:

let engineering = new Set (['Alberta', 'Dr. Gero', 'Trunks', 'Bulma', 'Gohan']); Freiberufler = neues Set (['Piccolo', 'Trunks', 'Vegeta', 'Goku', 'Gohan']);

Wenn Sie einem unserer Sets eine weitere Person hinzufügen möchten, verwenden wir die Syntax set.add (Wert) und ersetzen einstellen mit dem Namen unseres Sets und Wert wobei der Wert des Elements hinzugefügt wird. Wenn wir versuchen, ein Element hinzuzufügen, das bereits in der Gruppe enthalten ist, wird es nicht hinzugefügt. Beispiel:

let engineering = new Set (['Alberta', 'Dr. Gero', 'Trunks', 'Bulma', 'Gohan']); engineering.add ('Gohan'); console.log (Engineering);

Dies wird Set 'Alberta', 'Dr. Gero, Trunks, Bulma, Gohan.

Im Moment denkst du vielleicht so was? Was kann ich mit diesen Informationen machen? Als Nächstes werden wir sehen, wie wir mit Sets arbeiten können, um einige häufig auftretende Probleme zu lösen.

Union

Was ist, wenn wir alle Angestellten in unserem Unternehmen finden möchten, die freiberuflich tätig sind oder in der Konstruktionsabteilung arbeiten? Wir müssen die beiden Sätze kombinieren und doppelte Namen entfernen. Dies nennt man die Union. 

Die Vereinigung zweier Sätze ist der Satz, der Elemente aus einem Satz oder beiden Sätzen enthält. Beachten Sie, wie Elemente in unserem Engineering-Set auch im Freelancer-Set enthalten sind. So können Sie die Vereinigung beider Sets finden:

let engineering = new Set (['Alberta', 'Dr. Gero', 'Trunks', 'Bulma', 'Gohan']); Freiberufler = neues Set (['Piccolo', 'Trunks', 'Vegeta', 'Goku', 'Gohan']); let union = new Set ([… engineering,… freelancers]); console.log (union);

Das Der Operator verwandelt unser Set in ein Array und nach der Kombination der beiden Arrays das einstellen Der Konstruktor entfernt die doppelten Elemente. Die Vereinigung der beiden Sätze wird Set 'Alberta', 'Dr. Gero ',' Trunks ',' Bulma ',' Gohan ',' Piccolo ',' Vegeta ',' Goku '.

Aufgabe

Was ist die Vereinigung der Mengen [1, 3, 5, 7, 9] und [2, 3, 4, 6]?

Überschneidung

Angenommen, wir möchten alle Mitarbeiter finden, die in der Konstruktionsabteilung tätig sind und freiberuflich tätig sind. Dies ist der Schnittpunkt der Mengen. Der Schnittpunkt zweier Sätze ist der Satz, der Elemente in beiden Sätzen enthält. 

Um dies zu reproduzieren, können wir eine Menge durchsuchen und überprüfen, ob sich jedes Element in der anderen Gruppe befindet. Um zu überprüfen, ob ein Element in einer Menge enthalten ist, verwenden wir die hat Methode. Beispiel:

let engineering = new Set (['Alberta', 'Dr. Gero', 'Trunks', 'Bulma', 'Gohan']); console.log (engineering.has ('Alberta'));

Das würde wahr zurückkehren. Verwendung der hat Auf diese Weise können wir unser Engineering-Set nach Artikeln filtern, die auch im Freelancer-Set enthalten sind.

let engineering = new Set (['Alberta', 'Dr. Gero', 'Trunks', 'Bulma', 'Gohan']); Freiberufler = neues Set (['Piccolo', 'Trunks', 'Vegeta', 'Goku', 'Gohan']); let intersection = new Set ([… engineering] .filter (x => freelancers.has (x))); console.log (Kreuzung);

Die Schnittstelle zwischen Ingenieuren und Freiberuflern ist Set 'Trunks', 'Gohan'.

Aufgabe

Was ist der Schnittpunkt der Mengen [1, 3, 5, 7, 9] und [2, 3, 4, 6]?

Unterschied

Betrachten wir das Szenario, in dem wir Ingenieure finden wollen, die keine freien Mitarbeiter sind. Das ist der Unterschied. Der Unterschied zweier Sätze ist der Satz, der Elemente enthält, die im ersten Satz enthalten sind, nicht aber im zweiten Satz. 

Das bedeutet für uns, dass wir mit unserem Engineering-Set beginnen und dann alle Elemente entfernen, die auch in den freien Mitarbeitern enthalten sind. Beispiel:

let engineering = new Set (['Alberta', 'Dr. Gero', 'Trunks', 'Bulma', 'Gohan']); Freiberufler = neues Set (['Piccolo', 'Trunks', 'Vegeta', 'Goku', 'Gohan']); let difference = new Set ([… engineering] .filter (x =>! freelancers.has (x))); console.log (Unterschied);

Der Unterschied zwischen dem Engineering-Set und den freien Mitarbeitern ist Set 'Alberta', 'Dr. Gero ',' Bulma '. Wenn wir die Liste der Personen erhalten möchten, die Freiberufler und keine Ingenieure sind, beginnen wir mit dem Satz der Freiberufler und entfernen die Elemente, die im Satz der Ingenieure enthalten sind. Beispiel:

let difference = new Set ([… freelancers] .filter (x =>! engineering.has (x))); console.log (Unterschied);

Dies gibt uns ein anderes Ergebnis. Der Unterschied zwischen den freien Mitarbeitern und dem Engineering-Set ist Set 'Piccolo', 'Vegeta', 'Goku'.

Aufgabe

Finden Sie den Unterschied von [1, 3, 5, 7, 9] und [2, 3, 4, 6].

Finden Sie den Unterschied zwischen [2, 3, 4, 6] und [1, 3, 5, 7, 9].

Symmetrischer Unterschied

Nun möchten wir herausfinden, wer im Unternehmen entweder Ingenieur oder Freiberufler ist, aber nicht beides. Das ist der symmetrische Unterschied. Der symmetrische Unterschied zweier Sätze ist der Satz, der Elemente aus beiden Mengen enthält, nicht jedoch beide. 

Ein Ansatz, den wir verwenden könnten, besteht darin, die Vereinigung der beiden Gruppen zu finden (alle, die Ingenieur, Freiberufler oder beides sind) und die Schnittmenge abzuziehen (alle, die sowohl Ingenieur als auch Freiberufler sind). Durch die Kombination der zuvor verwendeten Techniken können wir den symmetrischen Unterschied mit dem folgenden Code ermitteln:

let engineering = new Set (['Alberta', 'Dr. Gero', 'Trunks', 'Bulma', 'Gohan']); Freiberufler = neues Set (['Piccolo', 'Trunks', 'Vegeta', 'Goku', 'Gohan']); let union = new Set ([… engineering,… freelancers]); let intersection = new Set ([… engineering] .filter (x => freelancers.has (x))) let symmetricDifference = new Set ([… union] .filter (x =>! intersection.has (x))); console.log (symmetricDifference);

Der symmetrische Unterschied unseres Engineering-Sets und unseres Freelancer-Sets ist Set 'Alberta', 'Dr. Gero, Bulma, Piccolo, Vegeta, Goku.

Aufgabe

Finden Sie den symmetrischen Unterschied von [1, 3, 5, 7, 9] und [2, 3, 4, 6]..

Ergänzen

Wenn wir unsere Mitarbeiter und Ingenieure haben, wie können wir dann alle Leute finden, die keine Ingenieure sind? Eine Sache, die wir tun könnten, ist, die von den Mitarbeitern gesetzten Ingenieure abzuziehen. Dieses Set ist die Ergänzung zu unseren in Bezug auf unsere Mitarbeiter festgelegten Sets. Beispiel:

lassen Sie Angestellte = ['Alberta', 'Dr. Gero ',' Trunks ',' Bulma ',' Gohan ',' Goku ',' Piccolo ',' Vegeta ']; let engineering = new Set (['Alberta', 'Dr. Gero', 'Trunks', 'Bulma', 'Gohan']); let complement = new Set ([… mitarbeiter] .filter (x =>! engineering.has (x))); console.log (komplementär);

Die Ergänzung zum Engineering-Set für unsere Mitarbeiter ist Set 'Goku', 'Piccolo', 'Vegeta'.

Aufgabe

Bestimmen Sie das Universalsatz [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] und finden Sie das Komplement zu Satz [2, 4, 6, 8, 10]..

Rezension

Sets sind praktisch, wenn Sie verschiedene Listen vergleichen, Listen kombinieren oder eindeutige Elemente in einer Liste suchen müssen. Wenn Sie das nächste Mal ein Problem haben, bei dem Sie Daten auf diese Weise analysieren müssen, sollten Sie eine der oben genannten gesetzten Operationen in Betracht ziehen. Hier ist eine Liste der wichtigsten Begriffe, die besprochen wurden:

  • Set: Eine Sammlung einzigartiger, ungeordneter Elemente.
  • Universalsatz: Alle möglichen Elemente eines Satzes.
  • Teilmenge: Eine kleinere Menge innerhalb einer Gruppe.
  • Vereinigung der Sätze A und B: Der Satz, der Elemente in A, B oder beiden enthält.
  • Schnittmenge der Sätze A und B: Der Satz, der Elemente aus A und B enthält.
  • Unterschied der Mengen A und B: Die Menge, die Elemente in A, aber nicht in B enthält.
  • Symmetrische Differenz der Mengen A und B: Die Menge, die Elemente in A oder B enthält, aber nicht beide.
  • Komplement von Satz A: Die Elemente im Universalsatz, die nicht in A enthalten sind.

Denken Sie wie üblich daran, wenn Sie nach zusätzlichen Ressourcen suchen, um zu studieren oder in Ihrer Arbeit zu verwenden, prüfen Sie, was wir auf dem Envato-Markt zur Verfügung haben.