Menu
Coddy logo textTech

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, um zu prüfen, ob setA eine Teilmenge von setB ist:

function isSubset(setA, setB) {
  return [...setA].every(element => setB.has(element));
}

Funktion, um zu prüfen, ob setA eine Obermenge von setB ist:

function isSuperset(setA, setB) {
  return isSubset(setB, setA);
}

Funktion zur Überprüfung, ob zwei Mengen gleich sind:

function areEqual(setA, setB) {
  return setA.size === setB.size && isSubset(setA, setB);
}

Überprüfung der Teilmengenbeziehung:

// Ist A eine Teilmenge von B? 
isSubset(setA, setB) // true
// Ist B eine Teilmenge von A? 
isSubset(setB, setA) // false
// Ist D eine Teilmenge von B? 
isSubset(setD, setB) // false

Überprüfung der Obermengen-Beziehung:

// Ist B eine Obermenge von A?
isSuperset(setB, setA) // true
// Ist A eine Obermenge von B?
isSuperset(setA, setB) // false

Gleichheit prüfen:

// Ist A gleich C?
areEqual(setA, setC) // true
// Ist A gleich B?
areEqual(setA, setB) // false
// Ist A gleich D?
areEqual(setA, setD) // false
challenge icon

Aufgabe

Einfach

Erstellen Sie eine Funktion namens analyzeSetRelations, die zwei Arrays als Parameter entgegennimmt: arr1 und arr2. Die Funktion soll die Arrays in Sets umwandeln und ein Objekt mit den folgenden Eigenschaften zurückgeben:

  • isSubset: ein Boolean, der angibt, ob set1 eine Teilmenge von set2 ist
  • isSuperset: ein Boolean, der angibt, ob set1 eine Obermenge von set2 ist
  • isEqual: ein Boolean, der angibt, ob set1 und set2 genau die gleichen Elemente enthalten

Spickzettel

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.

Prüfen, ob setA eine Teilmenge von setB ist:

function isSubset(setA, setB) {
  return [...setA].every(element => setB.has(element));
}

Prüfen, ob setA eine Obermenge von setB ist:

function isSuperset(setA, setB) {
  return isSubset(setB, setA);
}

Prüfen, ob zwei Mengen gleich sind:

function areEqual(setA, setB) {
  return setA.size === setB.size && isSubset(setA, setB);
}

Probier es selbst

function analyzeSetRelations(arr1, arr2) {
    let set1 = new Set(arr1);
    let set2 = new Set(arr2);

    // Verwende .every() und .has(), um Mengenbeziehungen zu prüfen
    let isSubset = false;   // TODO: Prüfen, ob jedes Element von set1 in set2 existiert
    let isSuperset = false; // TODO: Prüfen, ob jedes Element von set2 in set1 existiert
    let isEqual = false;    // TODO: Prüfen, ob beide Mengen die gleiche Größe haben und isSubset wahr ist

    return {
        isSubset: isSubset,
        isSuperset: isSuperset,
        isEqual: isEqual
    };
}
quiz iconTeste dich selbst

Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.

Alle Lektionen in Logik & Ablauf