V tomto příkladu se naučíte psát program JavaScript, který bude ilustrovat různé operace se sadami.
Abyste pochopili tento příklad, měli byste znát následující programovací témata JavaScriptu:
- Sada JavaScript a WeakSet
- JavaScript pro… smyčky
- Funkce a výrazy funkcí JavaScriptu
Příklad 1: Nastavení operace unie
// 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ýstup
Sada („jablko“, „mango“, „pomeranč“, „hrozny“, „banán“)
Operace sjednocení sady kombinuje prvky obou sad do jedné.
Nová sada unionSet
se vytvoří pomocí new Set()
. Proměnná unionSet obsahuje všechny hodnoty setA. Potom se for… of
smyčka používá k iteraci všemi prvky setB a jejich přidání do unionSet pomocí add()
metody.
Sada neobsahuje duplicitní hodnoty. Pokud tedy sada obsahuje stejnou hodnotu, druhá hodnota se zahodí.
Příklad 2: Nastavení provozu křižovatky
// 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ýstup
Sada („jablko“)
Operace set křižovatky představuje prvky, které jsou přítomny v setA i setB.
Nová sada intersectionSet
se vytvoří pomocí new Set()
. Poté se for… of
smyčka použije k iteraci přes setB. Pro každý prvek, který je přítomen v setA i setB, jsou přidány do průnikové sady.
Příklad 3: Nastavit operaci rozdílu
// 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ýstup
Sada („mango“, „oranžová“)
Operace rozdílu množin představuje prvky, které jsou přítomny v jedné sadě a ne v jiné sadě.
Rozdíl obsahuje všechny prvky setA. Poté se for… of
smyčka používá k iteraci všemi prvky setB. Pokud je prvek, který je přítomen v setB, k dispozici také v setA, je tento prvek odstraněn pomocí delete()
metody.
Příklad 4: Nastavit provoz podmnožiny
// 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ýstup
skutečný
Operace podmnožiny sady vrátí hodnotu true, pokud jsou všechny prvky setB v setA.
for… of
Smyčka se používá procházet prvky SETB. Pokud je přítomný libovolný prvek setB, není v setA přítomen, false
je vrácen.