Šiame pavyzdyje išmoksite rašyti „JavaScript“ programą, kuri iliustruos skirtingas rinkinio operacijas.
Norėdami suprasti šį pavyzdį, turite žinoti šias „JavaScript“ programavimo temas:
- „JavaScript“ rinkinys ir „WeakSet“
- „Java“ iš „Loop“
- „JavaScript“ funkcijos ir funkcijos išraiškos
1 pavyzdys: nustatykite „Union Operation“
// 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);
Rezultatas
Komplektas („obuolys“, „mango“, „apelsinas“, „vynuogės“, „bananas“)
Aibės sąjungos operacija sujungia abiejų rinkinių elementus į vieną.
Naujas rinkinys unionSet
sukurtas naudojant new Set()
. „UnionSet“ kintamajame yra visos „setA“ reikšmės. Tada for… of
kilpa naudojama pakartoti visus setB elementus ir pridėti juos prie unionSet naudojant add()
metodą.
Rinkinyje nėra pasikartojančių verčių. Taigi, jei rinkinyje yra ta pati reikšmė, pastaroji vertė atmetama.
2 pavyzdys: Nustatykite sankirtos operaciją
// 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);
Rezultatas
Rinkinys („obuolys“)
Rinkinio sankirtos operacija reiškia elementus, esančius ir rinkinyjeA, ir rinkinyjeB.
Naujas rinkinys intersectionSet
sukurtas naudojant new Set()
. Tada for… of
kilpa naudojama kartoti per setB. Kiekvienam elementui, esančiam tiek rinkinyjeA, tiek rinkinyjeB, jie pridedami prie sankirtos aibės.
3 pavyzdys: Nustatykite skirtumo veikimą
// 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);
Rezultatas
Rinkinys („mango“, „oranžinis“)
Rinkinio skirtumo operacija nurodo elementus, esančius viename rinkinyje, o ne kitame.
„DifferSet“ yra visi „setA“ elementai. Tada for… of
kilpa naudojama kartojant visus setB elementus. Jei elementas, esantis rinkinyjeB, yra ir rinkinyje A, elementas ištrinamas naudojant delete()
metodą.
4 pavyzdys: Nustatykite pogrupio veikimą
// 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);
Rezultatas
tiesa
Rinkinio pogrupio operacija grąžinama teisinga, jei visi aibės B elementai yra aibėje A.
for… of
Kilpa naudojama kilpa per SETB elementų. Jei kuris nors esamas elementas yra setB, rinkinyje A nėra, false
jis grąžinamas.