В този пример ще се научите да пишете програма на JavaScript, която ще извършва пресичане между два масива.
За да разберете този пример, трябва да имате познанията по следните теми за програмиране на JavaScript:
- Javascript Array филтър ()
- JavaScript масив push ()
- JavaScript Set и WeakSet
Пример 1: Извършете пресичане с помощта на Set
// 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);
Изход
(1, 3, 5)
В горната програма се извършва пресичане между array1
и array2
.
- Елементите на масива се преобразуват в
Set
елементи с помощта наnew Set()
конструктора. - В
for… of
линия се използва за обхождане вторитеSet
елементи. - В
has()
метода се използва за проверка дали елементът е в първатаSet
. - Ако елементът присъства в първия
Set
, този елемент се добавя към масива intersectionResult с помощта наpush()
метода.
Пример 2: Извършете пресичане, използвайки метод 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);
Изход
(1, 3, 5)
В горната програма се извършва пресичане между два масива, използвайки filter()
метода. Методът на филтъра се итерира върху масив и връща елементите на масива, които предават даденото условие.
- Всеки елемент от първия масив се сравнява с втория масив, използвайки
indexOf()
метода. - Най-
arr2.indexOf(x)
търсения метод arr2 и Връща позицията на първата поява на arr1. Ако стойността не може да бъде намерена, тя връща -1 . - Всички елементи, които са в двата масива, се връщат от
filter()
метода.
Забележка: Можете също да използвате includes()
метода, за да проверите дали елементите на масива са и в двата масива.
const intersectionResult = arr1.filter(x => arr2.includes(x))