V tomto príklade sa naučíte písať program JavaScript, ktorý bude ilustrovať rôzne operácie s množinami.
Aby ste pochopili tento príklad, mali by ste mať znalosti nasledujúcich tém programovania v jazyku JavaScript:
- Sada JavaScript a WeakSet
- JavaScript pre … slučky
- Funkcia JavaScript a výrazy funkcií
Príklad 1: Nastaviť fungovanie únie
// 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ýkon
Súprava („jablko“, „mango“, „pomaranč“, „hrozno“, „banán“)
Operácia spojenia množín kombinuje prvky oboch množín do jednej.
Nová sada unionSet
sa vytvorí pomocou new Set()
. Premenná unionSet obsahuje všetky hodnoty setA. Potom sa for… of
slučka použije na iteráciu cez všetky prvky setB a pomocou add()
metódy ich pridá do unionSet .
Sada neobsahuje duplicitné hodnoty. Ak teda množina obsahuje rovnakú hodnotu, druhá hodnota sa zahodí.
Príklad 2: Nastaviť prevádzku križ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ýkon
Sada („jablko“)
Operácia križovatky množiny predstavuje prvky, ktoré sú prítomné v množinách setA aj setB.
Nová sada intersectionSet
sa vytvorí pomocou new Set()
. Potom sa for… of
slučka použije na iteráciu cez setB. Pre každý prvok, ktorý sa nachádza v množinách setA aj setB, sa pridajú do množiny križovatiek.
Príklad 3: Operácia nastavenia rozdielu
// 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ýkon
Sada ("mango", "oranžová")
Operácia množinového rozdielu predstavuje prvky, ktoré sú prítomné v jednej množine a nie v inej množine.
Sada rozdielov obsahuje všetky prvky množiny A. Potom sa for… of
slučka použije na iteráciu cez všetky prvky setB. Ak je element, ktorý je v setB, k dispozícii aj v setA, tento element je vymazaný pomocou delete()
metódy.
Príklad 4: Nastavenie činnosti 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ýkon
pravda
Operácia podmnožiny množiny vráti hodnotu true, ak sú všetky prvky množiny setB v množine A.
for… of
Slučka sa používa prechádzať prvkami sejbe. Ak je prítomný akýkoľvek prvok setB, nie je prítomný v setA, false
je vrátený.