Ebben a példában megtanul olyan JavaScript programot írni, amely szemlélteti a különböző halmazműveleteket.
A példa megértéséhez ismernie kell a következő JavaScript programozási témákat:
- JavaScript készlet és WeakSet
- JavaScript a Loop számára
- JavaScript Function és Function Expressions
1. példa: Állítsa be az uniós műveletet
// 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);
Kimenet
Készlet ("alma", "mangó", "narancs", "szőlő", "banán")
A set unió művelet mindkét halmaz elemeit egyesíti egybe.
Új készlet unionSet
jön létre a new Set()
. Az unionSet változó a setA összes értékét tartalmazza. Ezután a for… of
ciklust a setB összes elemének iterációjára használják, és a metódussal hozzáadják az unionSet-hez add()
.
A készlet nem tartalmaz ismétlődő értékeket. Ezért, ha a halmaz ugyanazt az értéket tartalmazza, az utóbbi értéket elvetjük.
2. példa: Állítsa be a kereszteződés működését
// 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);
Kimenet
Készlet ("alma")
A halmaz metszés művelete olyan elemeket képvisel, amelyek mind a setA, mind a setB részen vannak.
Új készlet intersectionSet
jön létre a new Set()
. Ezután a for… of
ciklust a setB-n keresztüli iterációra használják. Minden elemnél, amely a setA-ban és a setB-ben egyaránt jelen van, hozzáadódnak a metszéshalmazhoz.
3. példa: Difference művelet beállítása
// 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);
Kimenet
Készlet ("mangó", "narancs")
A halmazkülönbség művelet olyan elemeket képvisel, amelyek az egyik halmazban vannak, a másikban nem.
A különbségSet a setA összes elemét tartalmazza. Ezután a for… of
ciklust a setB összes elemének iterációjára használják. Ha a setB elemben lévő elem elérhető a setA-ban is, akkor az elemet a delete()
metódus segítségével töröljük .
4. példa: Állítsa be a részhalmaz működésé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 const setA = new Set(('apple', 'mango', 'orange')); const setB = new Set(('apple', 'orange')); const result = subset(setA, setB); console.log(result);
Kimenet
igaz
A halmaz részhalmaz művelete igaz értéket ad vissza, ha a halmazB összes eleme a halmazban található.
A for… of
hurok segítségével haladhatunk a setB elemein. Ha bármelyik jelen lévő elem setB nincs jelen a setA-ban, false
akkor visszaadjuk.