Set: union / intersection / difference în JavaScript

Map și Set ES2025

Operații cu mulțimi: reuniune, intersecție, diferență și diferență simetrică între două Set-uri.

Sintaxă
a.union(b)
a.intersection(b)
a.difference(b)
a.symmetricDifference(b)

Ce face Set: union / intersection / difference

Fiecare metodă returnează un Set nou, fără să modifice originalele: union are toate valorile din ambele, intersection doar valorile comune, difference valorile din primul care nu sunt în al doilea, iar symmetricDifference valorile care sunt doar într-unul dintre ele.

Parametrul poate fi orice obiect „asemănător cu un Set” (cu size, has și keys), de exemplu un Map. Un tablou nu merge direct: transformă-l cu new Set(tablou).

Parametri

Parametru Descriere
b Celălalt Set (sau obiect asemănător).

Ce returnează

Un Set nou.

Exemple

Exemplul 1: Cursuri alese de doi studenți

const ana = new Set(["JS", "CSS", "SQL"]);
const dan = new Set(["JS", "Python", "SQL"]);

console.log(ana.union(dan));
console.log(ana.intersection(dan));
console.log(ana.difference(dan));
console.log(ana.symmetricDifference(dan));

Rezultat

Set(4) { 'JS', 'CSS', 'SQL', 'Python' }
Set(2) { 'JS', 'SQL' }
Set(1) { 'CSS' }
Set(2) { 'CSS', 'Python' }

Exemplul 2: Permisiuni noi și eliminate

const inainte = new Set(["citire", "scriere"]);
const dupa = new Set(["citire", "publicare"]);

console.log("adăugate:", [...dupa.difference(inainte)]);
console.log("eliminate:", [...inainte.difference(dupa)]);

Rezultat

adăugate: [ 'publicare' ]
eliminate: [ 'scriere' ]

Greșeli frecvente

  • Dai un tablou ca parametru: set.union([1, 2]) aruncă TypeError. Folosește set.union(new Set([1, 2])).

Comenzi înrudite