Program JavaScript do wykonywania przecięcia między dwiema tablicami

W tym przykładzie nauczysz się pisać program JavaScript, który wykona przecięcie między dwiema tablicami.

Aby zrozumieć ten przykład, powinieneś znać następujące tematy programowania JavaScript:

  • Filtr tablicy JavaScript ()
  • JavaScript Array push ()
  • JavaScript Set i WeakSet

Przykład 1: Wykonaj przecięcie za pomocą zestawu

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

Wynik

 (1, 3, 5)

W powyższym programie następuje przecięcie między array1a array2.

  • Elementy tablicy są konwertowane na Setelementy przy użyciu new Set()konstruktora.
  • for… ofPętla jest używane do przechodzenia przez drugi Setelementy.
  • has()Metoda służy do sprawdzenia, czy element jest w pierwszym Set.
  • Jeśli element występuje w pierwszym Set, ten element jest dodawany do tablicy intersectionResult przy użyciu push()metody.

Przykład 2: Wykonaj przecięcie za pomocą metody 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);

Wynik

 (1, 3, 5)

W powyższym programie filter()metodą przecięcia są wykonywane dwie tablice . Metoda filtru wykonuje iterację po tablicy i zwraca elementy tablicy, które przekazują podany warunek.

  • Każdy element pierwszej tablicy jest porównywany z drugą tablicą przy użyciu indexOf()metody.
  • Do arr2.indexOf(x)wyszukiwania metoda arr2 i zwraca pozycję pierwszego wystąpienia arr1. Jeśli nie można znaleźć wartości, zwraca -1 .
  • Wszystkie elementy znajdujące się w obu tablicach są zwracane przez filter()metodę.

Uwaga: Możesz również użyć tej includes()metody, aby sprawdzić, czy elementy tablicy znajdują się w obu tablicach.

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

Interesujące artykuły...