В этом примере вы научитесь писать программу на JavaScript, которая будет выполнять пересечение двух массивов.
Чтобы понять этот пример, вы должны знать следующие темы программирования JavaScript:
- Фильтр массива Javascript ()
- JavaScript Массив push ()
- Набор JavaScript и WeakSet
Пример 1: выполнить пересечение с помощью набора
// 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
, этот элемент добавляется к массиву crossctionResult с помощью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))