U ovom ćete primjeru naučiti pisati JavaScript program koji će izvršiti presijecanje dvaju nizova.
Da biste razumjeli ovaj primjer, trebali biste imati znanje o sljedećim temama programiranja JavaScript:
- Javascript filtar niza ()
- JavaScript niz niza push ()
- JavaScript i WeakSet postavljeni
Primjer 1: Izvršite presijecanje pomoću seta
// 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);
Izlaz
(1, 3, 5)
U gornjem programu izvedeno je presijecanje između array1
i array2
.
- Elementi niza pretvaraju se u
Set
elemente pomoćunew Set()
konstruktora. for… of
Petlja se koristi za iteraciju tijekom drugogSet
elementa.has()
Metoda se koristi za provjeru je li element u prviSet
.- Ako je element prisutan u prvom
Set
, taj se element dodajepush()
metodi intersectionResult pomoću metode.
Primjer 2: Izvršite presijecanje pomoću metode 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);
Izlaz
(1, 3, 5)
U gornjem programu se filter()
metodom vrši presijecanje dvaju nizova . Metoda filtriranja ponavlja se preko niza i vraća elemente niza koji prolaze zadani uvjet.
indexOf()
Metodom se uspoređuje svaki element prvog polja s drugim nizom .- U
arr2.indexOf(x)
pretraga metoda arr2 i vraća na poziciju prvog pojavljivanja arr1. Ako vrijednost nije moguće pronaći, vraća -1 . filter()
Metoda vraća sve elemente koji se nalaze u oba polja .
Napomena:includes()
Metodom biste također mogli provjeriti nalaze li se elementi niza u oba polja.
const intersectionResult = arr1.filter(x => arr2.includes(x))