JavaScript-ohjelma leikkaamaan kaksi taulukkoa

Tässä esimerkissä opit kirjoittamaan JavaScript-ohjelman, joka suorittaa kahden matriisin välisen leikkauspisteen.

Tämän esimerkin ymmärtämiseksi sinulla on oltava tieto seuraavista JavaScript-ohjelmoinnin aiheista:

  • Javascript-taulukon suodatin ()
  • JavaScript-taulukon työntö ()
  • JavaScript-sarja ja WeakSet

Esimerkki 1: Suorita leikkaus asetuksella

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

Tuotos

 (1, 3, 5)

Edellä olevassa ohjelmassa suoritetaan leikkauspiste array1ja array2.

  • Taulukkoelementit muunnetaan Setelementeiksi new Set()konstruktorin avulla.
  • for… ofSilmukkaa käytetään iteroimaan yli toisen Setelementtejä.
  • has()Menetelmää käytetään tarkistamaan, onko elementti on ensimmäinen Set.
  • Jos elementti esiintyy ensimmäisessä Set, se lisätään intersectionResult-matriisiin push()menetelmää käyttäen .

Esimerkki 2: Suorita leikkaus suodatin () -menetelmällä

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

Tuotos

 (1, 3, 5)

Edellä olevassa ohjelmassa suoritetaan leikkaus kahden matriisin välillä filter()menetelmää käyttäen . Suodatusmenetelmä toistaa taulukon ja palauttaa taulukkoelementit, jotka läpäisevät annetun ehdon.

  • Ensimmäisen ryhmän kaikkia elementtejä verrataan toiseen ryhmään indexOf()menetelmää käyttäen .
  • arr2.indexOf(x)Menetelmä hakujen arr2 ja palauttaa asennon ensimmäisen esiintymän arr1. Jos arvoa ei löydy, se palauttaa arvon -1 .
  • Kaikki molemmissa matriiseissa olevat elementit palautetaan filter()menetelmän avulla.

Huomaa: Voit myös käyttää includes()menetelmää tarkistaaksesi, ovatko matriisielementit molemmissa matriiseissa.

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

Mielenkiintoisia artikkeleita...