Programul JavaScript pentru a efectua intersecția între două matrice

În acest exemplu, veți învăța să scrieți un program JavaScript care va efectua o intersecție între două tablouri.

Pentru a înțelege acest exemplu, ar trebui să aveți cunoștințele despre următoarele subiecte de programare JavaScript:

  • Filtru matrice Javascript ()
  • JavaScript Array push ()
  • JavaScript Set și WeakSet

Exemplul 1: Efectuați intersecția folosind 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);

Ieșire

 (1, 3, 5)

În programul de mai sus, se realizează o intersecție între array1și array2.

  • Elementele matricei sunt convertite în Setelemente folosind new Set()constructorul.
  • for… ofBucla este folosit pentru a itera peste doua Setelemente.
  • has()Metoda este utilizată pentru a verifica dacă elementul este în primul Set.
  • Dacă elementul este prezent în primul Set, acel element este adăugat la matricea intersectionResult folosind push()metoda.

Exemplul 2: Efectuați intersecția folosind metoda 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);

Ieșire

 (1, 3, 5)

În programul de mai sus, se realizează o intersecție între două matrice folosind filter()metoda. Metoda de filtrare iterează peste o matrice și returnează elementele matricei care trec condiția dată.

  • Fiecare element al primei matrice este comparat cu a doua matrice utilizând indexOf()metoda.
  • Cele arr2.indexOf(x)Căutările metoda arr2 și returnează poziția de prima apariție a arr1. Dacă valoarea nu poate fi găsită, returnează -1 .
  • Toate elementele care se află în ambele tablouri sunt returnate prin filter()metodă.

Notă: De asemenea, puteți utiliza includes()metoda pentru a verifica dacă elementele matricei se află în ambele tablouri.

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

Articole interesante...