Программа JavaScript для выполнения пересечения двух массивов

В этом примере вы научитесь писать программу на 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))

Интересные статьи...