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șteset.union(new Set([1, 2])).
Comenzi înrudite
Set (add, has, delete): O colecție de valori unice: fiecare valoare apare o singură dată, în ordinea adăugării.Set: isSubsetOf / isSupersetOf / isDisjointFrom: Compară două mulțimi: dacă una o conține pe cealaltă sau dacă nu au nimic în comun.filter: Creează un tablou nou doar cu elementele care îndeplinesc o condiție.