JavaScript in WeakSet

V tej vadnici boste s pomočjo primerov izvedeli več o naborih JavaScript in WeakSets.

JavaScript ES6 je predstavil dve novi podatkovni strukturi, tj. SetIn WeakSet.

Set je podoben matriki, ki nam omogoča shranjevanje več elementov, kot so številke, nizi, predmeti itd. Vendar v nasprotju z matriko, niz ne more vsebovati podvojenih vrednosti.

Ustvari nabor JavaScript

Če želite ustvariti a Set, morate uporabiti new Set()konstruktor. Na primer

 // 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))

Ko se podvojene vrednosti posredujejo Setobjektu, se podvojene vrednosti izključijo.

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

Dostopite do elementov nabora

Do metode lahko dostopate Setz values()metodo in preverite, ali je v njej element, ki Setuporablja has()metodo. Na primer

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

Z has()metodo lahko preverite, ali je element v nizu. Na primer

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

Dodajanje novih elementov

Elemente lahko v Set dodate z uporabo add()metode. Na primer

 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());

Izhod

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

Odstranjevanje elementov

Lahko uporabite clear()in na delete()način, da odstranite elemente iz nabora.

delete()Metoda odstrani poseben element od A Set. Na primer

 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 odstrani vse elemente iz Set. Na primer

 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 ()

Ponavljajoče se množice

Elemente Set lahko pregledujete z uporabo zanke for… of ali forEach (). Do elementov se dostopa po vrstnem redu vstavljanja. Na primer

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

Izhod

 1 2 3

JavaScript WeakSet

WeakSet je podoben nizu. Vendar lahko WeakSet vsebuje samo predmete, medtem ko lahko Set vsebuje vse vrste podatkov, kot so nizi, številke, predmeti itd.

 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))

Ko poskušate poleg predmetov dodati še druge vrste podatkov, WeakSet vrne napako. Na primer

 // 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 imajo metode add(), delete()in has(). Na primer

 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 ()

Šibkih nizov ni mogoče ponoviti

Za razliko od kompletov WeakSets niso ponovljivi. Na primer

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

Matematične operacije množic

V JavaScriptu Set ne ponuja vgrajenih metod za izvajanje matematičnih operacij, kot so združitev, presečišče, razlika itd. Vendar pa lahko ustvarimo programe za izvajanje teh operacij.

Primer: nastavite Union Union

 // 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);

Izhod

 Set ("jabolko", "mango", "oranžna", "grozdje", "banana")

Primer: Nastavite delovanje križišča

 // 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);

Izhod

 Set ("jabolko")

Primer: nastavite operacijo razlike

 // 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);

Izhod

 Set ("mango", "oranžna")

Primer: nastavite delovanje podskupine

 // 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);

Izhod

 prav

JavaScript Setsin WeakSetsso bili uvedeni v ES6 . Nekateri brskalniki morda ne podpirajo njihove uporabe. Če želite izvedeti več, obiščite podporo za JavaScript Sets in podporo WeakSets JavaScript.

Zanimive Članki...