Math - Différence d'ensembles
Fait partie de la section Logique & Flux du Journey JavaScript de Coddy — leçon 38 sur 65.
La différence de deux ensembles A et B (souvent notée A - B) est un nouvel ensemble qui contient les éléments qui sont dans A mais pas dans B. Cette opération n'est pas commutative, ce qui signifie que A - B n'est pas nécessairement identique à B - A.
Par exemple :
const setA = new Set([1, 2, 3, 4, 5]);
const setB = new Set([3, 4, 5, 6, 7]);
// A - B: éléments dans A mais pas dans B
const differenceAB = new Set([...setA].filter(x => !setB.has(x)));
console.log('A - B:', differenceAB); // Set { 1, 2 }
// B - A: éléments dans B mais pas dans A
const differenceBA = new Set([...setB].filter(x => !setA.has(x)));
console.log('B - A:', differenceBA); // Set { 6, 7 }Défi
FacileCréez une fonction appelée setDifference qui prend deux tableaux en paramètres : arr1 et arr2. La fonction doit convertir les tableaux en ensembles (sets). Créez un nouvel ensemble (Set) qui contient les éléments présents dans set1 mais pas dans set2, convertissez-le en tableau et retournez-le.
Aide-mémoire
La différence de deux ensembles A et B (A - B) crée un nouvel ensemble contenant les éléments qui sont dans A mais pas dans B. Cette opération n'est pas commutative (A - B ≠ B - A).
Pour trouver la différence entre des ensembles, convertissez les tableaux en ensembles et utilisez les opérations d'ensemble pour trouver les éléments présents dans le premier ensemble mais pas dans le second. Par exemple :
const setA = new Set([1, 2, 3, 4, 5]);
const setB = new Set([3, 4, 5, 6, 7]);
// A - B: elements in A but not in B
const differenceAB = new Set([...setA].filter(x => !setB.has(x)));
console.log('A - B:', differenceAB); // Set { 1, 2 }
// B - A: elements in B but not in A
const differenceBA = new Set([...setB].filter(x => !setA.has(x)));
console.log('B - A:', differenceBA); // Set { 6, 7 }Essayez vous-même
function setDifference(arr1, arr2) {
const set1 = new Set(arr1)
const set2 = new Set(arr2)
const differenceSet = new Set();
// Écrivez votre code ici
return Array.from(differenceSet);
}
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