Programa JavaScript para realizar a interseção entre duas matrizes

Neste exemplo, você aprenderá a escrever um programa JavaScript que fará uma interseção entre dois arrays.

Para entender este exemplo, você deve ter conhecimento dos seguintes tópicos de programação JavaScript:

  • Filtro de matriz Javascript ()
  • Push de array JavaScript ()
  • Conjunto de JavaScript e WeakSet

Exemplo 1: realizar a interseção usando o conjunto

 // 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);

Resultado

 (1, 3, 5)

No programa acima, uma interseção é executada entre array1e array2.

  • Os elementos da matriz são convertidos em Setelementos usando o new Set()construtor.
  • O for… ofloop é usado para iterar os segundos Setelementos.
  • O has()método é usado para verificar se o elemento está no primeiro Set.
  • Se o elemento estiver presente no primeiro Set, esse elemento será adicionado ao array intersectionResult usando o push()método.

Exemplo 2: realizar interseção usando o método 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);

Resultado

 (1, 3, 5)

No programa acima, uma interseção é realizada entre duas matrizes usando o filter()método. O método de filtro itera sobre uma matriz e retorna os elementos da matriz que passam pela condição fornecida.

  • Cada elemento da primeira matriz é comparado com a segunda matriz usando o indexOf()método.
  • O arr2.indexOf(x)método pesquisa arr2 e retorna a posição da primeira ocorrência de arr1. Se o valor não puder ser encontrado, ele retorna -1 .
  • Todos os elementos que estão em ambas as matrizes são retornados pelo filter()método.

Nota: Você também pode usar o includes()método para verificar se os elementos da matriz estão em ambas as matrizes.

 const intersectionResult = arr1.filter(x => arr2.includes(x))

Artigos interessantes...