JavaScripti komplekt ja WeakSet

Selles õpetuses saate näidete abil õppida JavaScripti komplektide ja nõrkade komplektide kohta.

JavaScript ES6 on lisanud kaks uut andmestruktuurid ehk Setja WeakSet.

Komplekt sarnaneb massiiviga, mis võimaldab meil salvestada mitut üksust, näiteks numbreid, stringe, objekte jne. Kuid erinevalt massiivist ei saa komplekt sisaldada duplikaatväärtusi.

Looge JavaScripti komplekt

A loomiseks Setpeate kasutama new Set()konstruktorit. Näiteks,

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

Kui duplikaatväärtused edastatakse Setobjektile, välistatakse duplikaatväärtused.

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

Juurdepääs seatud elementidele

Pääsete Setelemente kasutades values()meetodit ja kontrollige, kas seal on element sees Set, kasutades has()meetodit. Näiteks,

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

Võite kasutada has()meetodit, et kontrollida, kui element on komplektis. Näiteks,

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

Uute elementide lisamine

add()Meetodi abil saate komplekti elemente lisada . Näiteks,

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

Väljund

 Määra itteraator (1, 2) Määra itteraator (1, 2, 3) Määra itteraator (1, 2, 3)

Elementide eemaldamine

Võite kasutada clear()ja delete()eemaldamise meetod elementide komplektist.

delete()Meetod eemaldab spetsiifilise elemendi alates Set. Näiteks,

 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()Meetod eemaldab kõik elemendid alates Set. Näiteks,

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

Iterate komplektid

Elementide Määra kaudu saate itereerida, kasutades meetodit for … of loop või forEach (). Elementidele pääseb juurde sisestamise järjekorras. Näiteks,

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

Väljund

 1 2 3

JavaScripti nõrk komplekt

WeakSet on sarnane komplektiga. Kuid WeakSet võib sisaldada ainult objekte, samas kui komplekt võib sisaldada mis tahes tüüpi andmeid, näiteks stringe, numbreid, objekte jne.

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

Kui proovite lisaks objektidele lisada muid andmetüüpe, loob WeakSet tõrke. Näiteks,

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

WeakSet meetodid

WeakSets on meetodid add(), delete()ja has(). Näiteks,

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

Nõrgad komplektid pole korduvad

Erinevalt komplektidest pole WeakSetid korduvad. Näiteks,

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

Matemaatilised komplektioperatsioonid

JavaScripti puhul ei paku Set sisseehitatud meetodeid matemaatiliste toimingute tegemiseks, nagu liit, ristmik, erinevus jne. Kuid nende toimingute tegemiseks võime luua programme.

Näide: määrake liidu toiming

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

Väljund

 Komplekt ("õun", "mango", "apelsin", "viinamarjad", "banaan")

Näide: määrake ristmiku operatsioon

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

Väljund

 Komplekt ("õun")

Näide: tehingu Erinevus määramine

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

Väljund

 Komplekt ("mango", "oranž")

Näide: määrake alamhulga töö

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

Väljund

 tõsi

JavaScripti Setsja need WeakSetsvõeti kasutusele ES6-s . Mõni brauser ei pruugi nende kasutamist toetada. Lisateabe saamiseks külastage JavaScripti komplektide tugiteenust ja JavaScripti nõrkade komplektide tugiteenuseid.

Huvitavad Artiklid...