Menu
Coddy logo textTech

Sous-ensembles et sur-ensembles

Fait partie de la section Logique & Flux du Journey JavaScript de Coddy. Leçon 40 sur 65.

Un ensemble A est un sous-ensemble de l’ensemble B si chaque élément de A est également un élément de B. Inversement, B est un sur-ensemble de A s’il contient tous les éléments de A.

Deux ensembles sont égaux s’ils contiennent exactement les mêmes éléments. Par exemple, créons quelques 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]);

Fonction permettant de vérifier si setA est un sous-ensemble de setB :

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

Fonction pour vérifier si setA est un surensemble de setB :

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

Fonction pour vérifier si deux ensembles sont égaux :

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

Tester la relation de sous-ensemble :

// A est un sous-ensemble de B ? 
isSubset(setA, setB) // true
// B est un sous-ensemble de A ? 
isSubset(setB, setA) // false
// D est un sous-ensemble de B ? 
isSubset(setD, setB) // false

Test de la relation de surensemble :

// B est un surensemble de A ?
isSuperset(setB, setA) // true
// A est un surensemble de B ?
isSuperset(setA, setB) // false

Tester l’égalité :

// A est égal à C ?
areEqual(setA, setC) // true
// A est égal à B ?
areEqual(setA, setB) // false
// A est égal à D ?
areEqual(setA, setD) // false
challenge icon

Défi

Facile

Créez une fonction appelée analyzeSetRelations qui prend deux tableaux comme paramètres : arr1 et arr2. La fonction doit convertir les tableaux en ensembles et renvoyer un objet contenant les propriétés suivantes :

  • isSubset : un booléen indiquant si set1 est un sous-ensemble de set2
  • isSuperset : un booléen indiquant si set1 est un sur-ensemble de set2
  • isEqual : un booléen indiquant si set1 et set2 contiennent exactement les mêmes éléments

Essayez vous-même

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

    // Utilisez .every() et .has() pour vérifier les relations entre ensembles
    let isSubset = false;   // TODO: vérifier si chaque élément de set1 existe dans set2
    let isSuperset = false; // TODO: vérifier si chaque élément de set2 existe dans set1
    let isEqual = false;    // TODO: vérifier si les deux ensembles ont la même taille et si isSubset est true

    return {
        isSubset: isSubset,
        isSuperset: isSuperset,
        isEqual: isEqual
    };
}
quiz iconTestez-vous

Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.

Toutes les leçons de Logique & Flux

Entraînez-vous par vous-même : Compilateur JavaScript en ligne