Programma JavaScript per eseguire l'intersezione tra due array

In questo esempio, imparerai a scrivere un programma JavaScript che eseguirà un'intersezione tra due array.

Per comprendere questo esempio, è necessario conoscere i seguenti argomenti di programmazione JavaScript:

  • Filtro array Javascript ()
  • JavaScript Array push ()
  • JavaScript Set e WeakSet

Esempio 1: eseguire l'intersezione utilizzando 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);

Produzione

 (1, 3, 5)

Nel programma precedente, viene eseguita un'intersezione tra array1e array2.

  • Gli elementi dell'array vengono convertiti in Setelementi utilizzando il new Set()costruttore.
  • Il for… ofciclo viene utilizzato per iterare sui secondi Setelementi.
  • Il has()metodo viene utilizzato per verificare se l'elemento è nel primo Set.
  • Se l'elemento è presente nel primo Set, quell'elemento viene aggiunto all'array intersectionResult utilizzando il push()metodo.

Esempio 2: eseguire l'intersezione utilizzando il metodo 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);

Produzione

 (1, 3, 5)

Nel programma precedente, viene eseguita un'intersezione tra due array utilizzando il filter()metodo. Il metodo filter esegue l'iterazione su un array e restituisce gli elementi dell'array che soddisfano la condizione specificata.

  • Ogni elemento del primo array viene confrontato con il secondo array utilizzando il indexOf()metodo.
  • Il arr2.indexOf(x)metodo cerca arr2 e restituisce la posizione della prima occorrenza di arr1. Se il valore non può essere trovato, restituisce -1 .
  • Tutti gli elementi che si trovano in entrambi gli array vengono restituiti dal filter()metodo.

Nota: è anche possibile utilizzare il includes()metodo per verificare se gli elementi dell'array si trovano in entrambi gli array.

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

Articoli interessanti...