„JavaScript“ programa, skirta atlikti dviejų masyvų susikirtimą

Šiame pavyzdyje išmoksite rašyti „JavaScript“ programą, kuri atliks dviejų masyvų sankirtą.

Norėdami suprasti šį pavyzdį, turite žinoti šias „JavaScript“ programavimo temas:

  • „Javascript“ masyvo filtras ()
  • „JavaScript“ masyvo stumdymas ()
  • „JavaScript“ rinkinys ir „WeakSet“

1 pavyzdys: Atlikite sankirtą naudodami rinkinį

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

Rezultatas

 (1, 3, 5)

Minėtoje programoje sankirta atliekama tarp array1ir array2.

  • Masyvo elementai paverčiami Setelementais naudojant new Set()konstruktorių.
  • for… ofKilpa naudojama, kad iš eilės nei antrasis Setelementai.
  • has()Metodas naudojamas siekiant patikrinti, ar elementas yra pirmas Set.
  • Jei elementas yra pirmajame Set, šis elementas pridedamas prie intersectionResult masyvo naudojant push()metodą.

2 pavyzdys: Atlikite sankirtą naudodami filtro () metodą

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

Rezultatas

 (1, 3, 5)

Pirmiau minėtoje programoje, naudojant filter()metodą, atliekama sankryža tarp dviejų masyvų . Filtro metodas pakartoja masyvą ir grąžina masyvo elementus, kurie perduoda nurodytą sąlygą.

  • Kiekvienas pirmojo masyvo elementas palyginamas su antruoju masyvu, naudojant indexOf()metodą.
  • Į arr2.indexOf(x)metodas paieškų arr2 ir grąžina pirmosios atsiradimo arr1 poziciją. Jei vertės rasti nepavyksta, ji grąžina -1 .
  • Visi elementai, esantys abiejose masyvuose, grąžinami filter()metodu.

Pastaba: Taip pat galite naudoti includes()metodą, kad patikrintumėte, ar masyvo elementai yra abiejuose masyvuose.

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

Įdomios straipsniai...