Set Methods (ES2025)

JavaScript 🟢 Junior

Définition

Sept méthodes ensemblistes ajoutées à Set par ES2025 : union, intersection, différence, symmetricDifference, isSubsetOf, isSupersetOf et isDisjointFrom. Elles renvoient un nouveau Set (ou un booléen) et acceptent tout objet « set-like » exposant size, has et keys. Disponibles dans tous les navigateurs majeurs depuis juin 2024 (Baseline 2024) et dans TypeScript depuis la 5.5.

Analogie

Les diagrammes de Venn du collège, enfin disponibles en une ligne.

Exemple de code

const admins = new Set(['ana', 'bob']);
const actifs = new Set(['bob', 'chloe']);
admins.union(actifs);               // Set {ana, bob, chloe}
admins.intersection(actifs);        // Set {bob}
admins.difference(actifs);          // Set {ana}
admins.symmetricDifference(actifs); // Set {ana, chloe}
new Set(['bob']).isSubsetOf(admins); // true
admins.isDisjointFrom(new Set(['zoe'])); // true

Cas d'usage

Droits d'accès, comparaison de tags, détection de doublons entre deux listes sans boucles manuelles.

Anti-pattern

Réécrire ces opérations avec filter + has : plus long, plus lent, et moins lisible.

Termes liés

#core#ES2025#interview

En entretien

  1. Explique-moi à quoi servent les nouvelles méthodes de Set comme union ou intersection.

    Ce sont sept méthodes ensemblistes ajoutées par ES2025 (union, intersection, différence, symmetricDifference, isSubsetOf, isSupersetOf, isDisjointFrom) qui renvoient un nouveau Set ou un booléen. Elles remplacent des combinaisons manuelles de filter et has pour comparer des tags ou détecter des doublons entre deux listes.

  2. Pourquoi éviter de réécrire ces opérations à la main avec filter et has ?

    Parce que c'est plus long à écrire, plus lent à l'exécution et moins lisible que la méthode native dédiée. Ces méthodes acceptent en plus tout objet set-like exposant size, has et keys, donc pas besoin d'un vrai Set en entrée.

Fiche mise à jour le 2026-09-27

← → au clavier pour passer d'une fiche à l'autre