JavaScript Set și WeakSet

În acest tutorial, veți afla despre seturile JavaScript și WeakSets cu ajutorul exemplelor.

JavaScript ES6 a introdus două noi structuri de date, adică Setși WeakSet.

Setul este similar cu o matrice care ne permite să stocăm mai multe articole precum numere, șiruri, obiecte etc. Cu toate acestea, spre deosebire de o matrice, un set nu poate conține valori duplicat.

Creați setul JavaScript

Pentru a crea un Set, trebuie să utilizați new Set()constructorul. De exemplu,

 // create Set const set1 = new Set(); // an empty set console.log(set1); // Set () // Set with multiple types of value const set2 = new Set((1, 'hello', (count : true))); console.log(set2); // Set (1, "hello", (count: true))

Când valorile duplicate sunt transmise unui Setobiect, valorile duplicate sunt excluse.

 // Set with duplicate values const set3 = new Set((1, 1, 2, 2)); console.log(set3); // Set (1, 2)

Accesați elementele setului

Puteți accesa Setelemente folosind values()metoda și puteți verifica dacă există un element în interiorul Setutilizării has()metodei. De exemplu,

 const set1 = new Set((1, 2, 3)); // access the elements of a Set console.log(set1.values()); // Set Iterator (1, 2, 3)

Puteți utiliza has()metoda pentru a verifica dacă elementul se află într-un set. De exemplu,

 const set1 = new Set((1, 2, 3)); // check if an element is in Set console.log(set1.has(1));

Adăugarea de elemente noi

Puteți adăuga elemente la un set folosind add()metoda. De exemplu,

 const set = new Set((1, 2)); console.log(set.values()); // adding new elements set.add(3); console.log(set.values()); // adding duplicate elements // does not add to Set set.add(1); console.log(set.values());

Ieșire

 Set Iterator (1, 2) Set Iterator (1, 2, 3) Set Iterator (1, 2, 3)

Eliminarea elementelor

Puteți utiliza clear()și delete()metoda pentru a elimina elemente dintr-un set.

delete()Metoda elimină un element specific dintr - o Set. De exemplu,

 const set = new Set((1, 2, 3)); console.log(set.values()); // Set Iterator (1, 2, 3) // removing a particular element set.delete(2); console.log(set.values()); // Set Iterator (1, 3)

clear()Metoda elimină toate elementele dintr - o Set. De exemplu,

 const set = new Set((1, 2, 3)); console.log(set.values()); // Set Iterator (1, 2, 3) // remove all elements of Set set.clear(); console.log(set.values()); // Set Iterator ()

Seturi Iterate

Puteți itera prin elementele Set utilizând metoda for … of loop sau forEach (). Elementele sunt accesate în ordinea de inserare. De exemplu,

 const set = new Set((1, 2, 3)); // looping through Set for (let i of set) ( console.log(i); )

Ieșire

 1 2 3

JavaScript WeakSet

WeakSet este similar cu un set. Cu toate acestea, WeakSet poate conține numai obiecte, în timp ce un set poate conține orice tip de date, cum ar fi șiruri, numere, obiecte etc. De exemplu,

 const weakSet = new WeakSet(); console.log(weakSet); // WeakSet () let obj = ( message: 'Hi', sendMessage: true ) // adding object (element) to WeakSet weakSet.add(obj); console.log(weakSet); // WeakSet ((message: "Hi", sendMessage: true))

Când încercați să adăugați alte tipuri de date în afară de obiecte, WeakSet aruncă o eroare. De exemplu,

 // trying to add string to WeakSet weakSet.add('hello'); // throws error // TypeError: Attempted to add a non-object key to a WeakSet console.log(weakSet);

Metode WeakSet

WeakSets au metode add(), delete()și has(). De exemplu,

 const weakSet = new WeakSet(); console.log(weakSet); // WeakSet () const obj = (a:1); // add to a weakSet weakSet.add(obj); console.log(weakSet); // WeakSet ((a: 1)) // check if an element is in Set console.log(weakSet.has(obj)); // true // delete elements weakSet.delete(obj); console.log(weakSet); // WeakSet ()

WeakSets nu sunt iterabile

Spre deosebire de Seturi, WeakSets nu sunt iterabile. De exemplu,

 const weakSet = new WeakSet((a:1)); // looping through WeakSet for (let i of weakSet) ( // TypeError console.log(i); )

Operații de seturi matematice

În JavaScript, Set nu oferă metode încorporate pentru efectuarea operațiilor matematice, cum ar fi unirea, intersecția, diferența etc. Cu toate acestea, putem crea programe pentru a efectua acele operații.

Exemplu: Setați operațiunea de unire

 // perform union operation // contain elements of both sets function union(a, b) ( let unionSet = new Set(a); for (let i of b) ( unionSet.add(i); ) return unionSet ) // two sets of fruits let setA = new Set(('apple', 'mango', 'orange')); let setB = new Set(('grapes', 'apple', 'banana')); let result = union(setA, setB); console.log(result);

Ieșire

 Set („măr”, „mango”, „portocală”, „struguri”, „banane”)

Exemplu: Setați operația de intersecție

 // perform intersection operation // elements of set a that are also in set b function intersection(setA, setB) ( let intersectionSet = new Set(); for (let i of setB) ( if (setA.has(i)) ( intersectionSet.add(i); ) ) return intersectionSet; ) // two sets of fruits let setA = new Set(('apple', 'mango', 'orange')); let setB = new Set(('grapes', 'apple', 'banana')); let result = intersection(setA, setB); console.log(result);

Ieșire

 Set („măr”)

Exemplu: Setați diferența de funcționare

 // perform difference operation // elements of set a that are not in set b function difference(setA, setB) ( let differenceSet = new Set(setA) for (let i of setB) ( differenceSet.delete(i) ) return differenceSet ) // two sets of fruits let setA = new Set(('apple', 'mango', 'orange')); let setB = new Set(('grapes', 'apple', 'banana')); let result = difference(setA, setB); console.log(result);

Ieșire

 Set („mango”, „orange”)

Exemplu: Setați funcționarea subsetului

 // perform subset operation // true if all elements of set b is in set a function subset(setA, setB) ( for (let i of setB) ( if (!setA.has(i)) ( return false ) ) return true ) // two sets of fruits let setA = new Set(('apple', 'mango', 'orange')); let setB = new Set(('apple', 'orange')); let result = subset(setA, setB); console.log(result);

Ieșire

 Adevărat

JavaScript Setsși WeakSetsau fost introduse în ES6 . Este posibil ca unele browsere să nu le accepte utilizarea. Pentru a afla mai multe, vizitați asistența JavaScript Sets și suportul JavaScript WeakSets.

Articole interesante...