Program JavaScript k provedení křižovatky mezi dvěma poli

V tomto příkladu se naučíte psát program JavaScriptu, který provede průnik mezi dvěma poli.

Abyste pochopili tento příklad, měli byste znát následující programovací témata JavaScriptu:

  • Filtr pole Javascript ()
  • JavaScript pole push ()
  • Sada JavaScript a WeakSet

Příklad 1: Proveďte křižovatku pomocí sady

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

Výstup

 (1, 3, 5)

Ve výše uvedeném programu se provádí průnik mezi array1a array2.

  • Prvky pole jsou převedeny na Setprvky pomocí new Set()konstruktoru.
  • for… ofSmyčka se používá k iteraci přes druhý Setprvků.
  • has()Metoda se používá pro ověření, zda je prvek v prvním Set.
  • Pokud je prvek přítomen v prvním Set, je tento prvek přidán do pole intersectionResult pomocí push()metody.

Příklad 2: Proveďte křižovatku 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);

Výstup

 (1, 3, 5)

Ve výše uvedeném programu se pomocí této filter()metody provede průnik mezi dvěma poli . Metoda filtru iteruje přes pole a vrací prvky pole, které splňují danou podmínku.

  • Každý prvek prvního pole je pomocí indexOf()metody porovnán s druhým polem .
  • Tyto arr2.indexOf(x)metody vyhledávání arr2 a vrátí pozici prvního výskytu arr1. Pokud hodnotu nelze najít, vrátí hodnotu -1 .
  • filter()Metoda vrátí všechny prvky, které jsou v obou polích .

Poznámka: Můžete také použít includes()metodu ke kontrole, zda jsou prvky pole v obou polích.

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

Zajímavé články...