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) // falseTest 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) // falseTester 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) // fauxDéfi
FacileCré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 siset1est un sous-ensemble deset2isSuperset: un booléen indiquant siset1est un sur-ensemble deset2isEqual: un booléen indiquant siset1etset2ont 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
};
}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
1Les chaînes de caractères en profondeur
Fondamentaux des chaînesParcourir les chaînesTemplate LiteralsMéthodes des chaînesRécapitulatif - String Weaver4JSON Partie 2
Itérer sur du JSONJSON imbriquéChaînage optionnel JSONCopie superficielle et profondeRécapitulatif - Magasin de vélosRécapitulatif - Système solaire7Système de gestion de bibliothèque
Présentation du projetAjouter des livres2Tableaux multidimensionnels
Bases des tableaux 2DAccès aux éléments d'un tableau 2DBoucles imbriquées et tableaux 2DRécapitulatif - Tableaux 2DAddition et soustraction de matricesTableaux irréguliers (Jagged Arrays)Tableaux 3D et au-delàModèles courants de tableaux 2DRécapitulatif - Tout sur les tableaux3JSON Partie 1
Qu'est-ce qu'un JSON ?Vérifier si une clé existeMéthodes d'objetL'opérateur Spread Partie 1L'opérateur Spread Partie 2Supprimer des clésRécapitulatif - Manipuler les clés JSON6Ensembles - Partie 2
Math - Union d'ensemblesMath - Intersection d'ensemblesMath - Différence d'ensemblesMath - Différence symétriqueSous-ensembles et sur-ensemblesRécapitulatif - Grouper des amis