Selles näites õpid kirjutama JavaScripti programmi, mis illustreerib erinevaid komplekti toiminguid.
Selle näite mõistmiseks peaksid teil olema teadmised järgmistest JavaScripti programmeerimise teemadest:
- JavaScripti komplekt ja WeakSet
- JavaScripti versioonile Loop
- JavaScripti funktsioonide ja funktsioonide avaldised
Näide 1: määrake liidu toimimine
// 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 const setA = new Set(('apple', 'mango', 'orange')); const setB = new Set(('grapes', 'apple', 'banana')); const result = union(setA, setB); console.log(result);
Väljund
Komplekt ("õun", "mango", "apelsin", "viinamarjad", "banaan")
Komplektiühenduse operatsioon ühendab mõlema komplekti elemendid üheks.
Uus komplekt unionSet
luuakse kasutades new Set()
. Muutuja unionSet sisaldab kõiki komplekti A väärtusi. Seejärel kasutatakse for… of
tsüklit kõigi setB elementide itereerimiseks ja add()
meetodi abil UnionSeti lisamiseks .
Komplekt ei sisalda duplikaatväärtusi. Seega, kui komplekt sisaldab sama väärtust, jäetakse viimane väärtus kõrvale.
Näide 2: tehke ristmik
// 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 const setA = new Set(('apple', 'mango', 'orange')); const setB = new Set(('grapes', 'apple', 'banana')); const result = intersection(setA, setB); console.log(result);
Väljund
Komplekt ("õun")
Hulga ristumisoperatsioon tähistab elemente, mis esinevad nii setA-s kui ka setB-s.
Uus komplekt intersectionSet
luuakse kasutades new Set()
. Seejärel kasutatakse for… of
silmust setB kaudu itereerimiseks. Iga elemendi kohta, mis on olemas nii setA-s kui ka setB-s, lisatakse need ristumiskomplekti.
Näide 3: Erinevuse 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 const setA = new Set(('apple', 'mango', 'orange')); const setB = new Set(('grapes', 'apple', 'banana')); const result = difference(setA, setB); console.log(result);
Väljund
Komplekt ("mango", "oranž")
Hulgadevahelise toiminguga tähistatakse elemente, mis esinevad ühes ja mitte teises komplektis.
Diferentsikomplekt sisaldab kõiki komplektiA elemente. Seejärel kasutatakse for… of
tsüklit kõigi setB elementide itereerimiseks. Kui komplektis B olev element on saadaval ka komplektis A, kustutatakse see delete()
meetod meetodi abil.
Näide 4: alamhulga toimimise määramine
// 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 const setA = new Set(('apple', 'mango', 'orange')); const setB = new Set(('apple', 'orange')); const result = subset(setA, setB); console.log(result);
Väljund
tõsi
Hulga alamhulga operatsioon tagastab tõese, kui kõik komplekti B elemendid on komplektis A.
for… of
Loop kasutatakse ahela kaudu elemendid setB. Kui mõni element, mis on olemas, on komplekt B, false
pole komplektis A olemas, tagastatakse.