V tomto príklade sa naučíte písať program JavaScriptu, ktorý vykoná prienik medzi dvoma poľami.
Aby ste pochopili tento príklad, mali by ste mať znalosti nasledujúcich tém programovania v jazyku JavaScript:
- Filter poľa Javascript ()
- Zatlačenie poľa JavaScriptu ()
- Sada JavaScript a WeakSet
Príklad 1: Vykonajte križovatku pomocou množiny
// program to perform intersection between two arrays using Set // intersection contains the elements of array1 that are also in array2 function performIntersection(arr1, arr2) ( // converting into Set const setA = new Set(arr1); const setB = new Set(arr2); let intersectionResult = (); for (let i of setB) ( if (setA.has(i)) ( intersectionResult.push(i); ) ) return intersectionResult; ) const array1 = (1, 2, 3, 5, 9); const array2 = (1, 3, 5, 8); const result = performIntersection(array1, array2); console.log(result);
Výkon
(1, 3, 5)
Vo vyššie uvedenom programe sa križovatka vykonáva medzi array1
a array2
.
- Prvky poľa sa prevedú na
Set
prvky pomocounew Set()
konštruktora. for… of
Slučka sa používa na iterácii cez druhýSet
prvkov.has()
Metóda sa používa pre overenie, či je prvok v prvomSet
.- Ak je prvok prítomný v prvom
Set
, tento prvok sa pomocoupush()
metódy pridá do poľa intersectionResult .
Príklad 2: Vykonajte križovatku pomocou metódy filter ()
// program to perform intersection between two arrays function performIntersection(arr1, arr2) ( const intersectionResult = arr1.filter(x => arr2.indexOf(x) !== -1); return intersectionResult; ) const array1 = (1, 2, 3, 5, 9); const array2 = (1, 3, 5, 8); const result = performIntersection(array1, array2); console.log(result);
Výkon
(1, 3, 5)
Vo vyššie uvedenom programe sa križovatka uskutočňuje medzi dvoma poľami pomocou tejto filter()
metódy. Metóda filtra iteruje nad poľom a vracia prvky poľa, ktoré vyhovujú danej podmienke.
- Každý prvok prvého poľa sa porovnáva s druhým poľom pomocou
indexOf()
metódy. - Tieto
arr2.indexOf(x)
metódy vyhľadávania Arr2 a vráti pozíciu prvého výskytu Arr1. Ak hodnotu nemožno nájsť, vráti hodnotu -1 . filter()
Metóda vráti všetky prvky, ktoré sú v obidvoch poliach .
Poznámka: Môžete tiež použiť túto includes()
metódu na kontrolu, či sú prvky poľa v oboch poliach.
const intersectionResult = arr1.filter(x => arr2.includes(x))