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 aussi 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 pour 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 sur-ensemble 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);
}

Test de 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 sur-ensemble (superset) :

// B est-il un sur-ensemble de A ?
isSuperset(setB, setA) // true
// A est-il un sur-ensemble de B ?
isSuperset(setA, setB) // false

Tester l'égalité :

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

Défi

Facile

Créez une fonction appelée analyzeSetRelations qui prend deux tableaux en paramètres : arr1 et arr2. La fonction doit convertir les tableaux en ensembles et retourner un objet avec 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 ont exactement les mêmes éléments

Aide-mémoire

Un ensemble A est un sous-ensemble de l'ensemble B si chaque élément de A est aussi 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.

Vérifiez si setA est un sous-ensemble de setB :

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

Vérifiez si setA est un sur-ensemble de setB :

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

Vérifiez si deux ensembles sont égaux :

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

Essayez vous-même

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

    // Utiliser .every() et .has() pour vérifier les relations entre les 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 vrai

    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