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 array1
e array2
.
- Gli elementi dell'array vengono convertiti in
Set
elementi utilizzando ilnew Set()
costruttore. - Il
for… of
ciclo viene utilizzato per iterare sui secondiSet
elementi. - Il
has()
metodo viene utilizzato per verificare se l'elemento è nel primoSet
. - Se l'elemento è presente nel primo
Set
, quell'elemento viene aggiunto all'array intersectionResult utilizzando ilpush()
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))