Teilmengen und Obermengen
Teil des Abschnitts Logik & Ablauf der JavaScript-Journey von Coddy. Lektion 40 von 65.
Eine Menge A ist eine Teilmenge der Menge B, wenn jedes Element von A auch ein Element von B ist. Umgekehrt ist B eine Obermenge von A, wenn sie alle Elemente von A enthält.
Zwei Mengen sind gleich, wenn sie genau dieselben Elemente enthalten. Erstellen wir zum Beispiel einige Tests:
const setA = new Set([1, 2, 3]);
const setB = new Set([1, 2, 3, 4, 5]);
const setC = new Set([1, 2, 3]);
const setD = new Set([6, 7, 8]);Funktion zur Überprüfung, ob setA eine Teilmenge von setB ist:
function isSubset(setA, setB) {
return [...setA].every(element => setB.has(element));
}Funktion zur Überprüfung, ob setA eine Obermenge von setB ist:
function isSuperset(setA, setB) {
return isSubset(setB, setA);
}Funktion zum Überprüfen, ob zwei Mengen gleich sind:
function areEqual(setA, setB) {
return setA.size === setB.size && isSubset(setA, setB);
}Teilbeziehung testen:
// A ist Teilmenge von B?
isSubset(setA, setB) // true
// B ist Teilmenge von A?
isSubset(setB, setA) // false
// D ist Teilmenge von B?
isSubset(setD, setB) // falseÜberprüfung der Obermengenbeziehung:
// B ist Obermenge von A?
isSuperset(setB, setA) // true
// A ist Obermenge von B?
isSuperset(setA, setB) // falseGleichheit testen:
// A gleich C?
areEqual(setA, setC) // true
// A gleich B?
areEqual(setA, setB) // false
// A gleich D?
areEqual(setA, setD) // falseAufgabe
EinfachErstelle eine Funktion namens analyzeSetRelations, die zwei Arrays als Parameter entgegennimmt: arr1 und arr2. Die Funktion sollte die Arrays in Mengen umwandeln und ein Objekt mit den folgenden Eigenschaften zurückgeben:
isSubset: ein boolescher Wert, der angibt, obset1eine Teilmenge vonset2istisSuperset: ein boolescher Wert, der angibt, obset1eine Obermenge vonset2istisEqual: ein boolescher Wert, der angibt, obset1undset2genau dieselben Elemente enthalten
Probier es selbst
function analyzeSetRelations(arr1, arr2) {
let set1 = new Set(arr1);
let set2 = new Set(arr2);
// Verwende .every() und .has(), um Mengenrelationen zu prüfen
let isSubset = false; // TODO: prüfe, ob jedes Element von set1 in set2 existiert
let isSuperset = false; // TODO: prüfe, ob jedes Element von set2 in set1 existiert
let isEqual = false; // TODO: prüfe, ob beide Mengen die gleiche Größe haben und isSubset true ist
return {
isSubset: isSubset,
isSuperset: isSuperset,
isEqual: isEqual
};
}Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.
Alle Lektionen in Logik & Ablauf
1Strings im Detail
Grundlagen von StringsStrings durchlaufenTemplate LiteralsString-MethodenRückblick – String-Weber4JSON Teil 2
JSON durchlaufenVerschachteltes JSONOptionale Verkettung in JSONFlache und tiefe KopieWiederholung – FahrradgeschäftWiederholung – Sonnensystem7Bibliotheksverwaltungssystem
ProjektübersichtBücher hinzufügen2Mehrdimensionale Arrays
Grundlagen von 2D-ArraysZugriff auf Elemente von 2D-ArraysVerschachtelte Schleifen mit 2D-ArraysWiederholung – 2D-ArraysMatrixaddition und -subtraktionZackige Arrays3D-Arrays und darüber hinausHäufige Muster bei 2D-ArraysWiederholung – Alles über Arrays5Mengen – Teil 1
Was ist eine Menge?Mengen durchlaufenEin Element hinzufügenEin Element entfernenPrüfen, ob ein Element vorhanden istGröße und LeerstatusKopieren und LeerenRückblick – Grundlagen von Mengen8Interessante Themen zu Arrays
Destrukturierung von ArraysSpread-Syntax in ArraysDünn besetzte ArraysRückblick – Workshop zu Arrays3JSON Teil 1
Was ist JSON?Prüfen, ob ein Schlüssel vorhanden istObjektmethodenSpread-Operator Teil 1Spread-Operator Teil 2Schlüssel entfernenRückblick – JSON-Schlüssel bearbeitenÜbe selbstständig: Online-JavaScript-Compiler