JavaScript programma, lai veiktu krustojumu starp diviem masīviem

Šajā piemērā jūs iemācīsities rakstīt JavaScript programmu, kas veiks divu masīvu krustojumu.

Lai saprastu šo piemēru, jums jāpārzina šādas JavaScript programmēšanas tēmas:

  • Javascript masīva filtrs ()
  • JavaScript masīva push ()
  • JavaScript kopa un WeakSet

1. piemērs: Veiciet krustojumu, izmantojot komplektu

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

Rezultāts

 (1, 3, 5)

Iepriekš minētajā programmā krustojums tiek veikts starp array1un array2.

  • Masīva elementi tiek pārveidoti par Setelementiem, izmantojot new Set()konstruktoru.
  • for… ofCilpa tiek izmantota, lai atkārtot pār otro Setelementu.
  • has()Metode tiek izmantota, lai pārbaudītu, vai elements ir pirmais Set.
  • Ja elements atrodas pirmajā Set, šis elements tiek pievienots intersectionResult masīvam, izmantojot push()metodi.

2. piemērs: Veiciet krustojumu, izmantojot filtra () metodi

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

Rezultāts

 (1, 3, 5)

Iepriekš minētajā programmā krustojums tiek veikts starp diviem masīviem, izmantojot filter()metodi. Filtrēšanas metode atkārtojas masīvā un atgriež masīva elementus, kas iztur noteikto nosacījumu.

  • Katru pirmā masīva elementu salīdzina ar otro masīvu, izmantojot indexOf()metodi.
  • The arr2.indexOf(x)metode meklē arr2 un atgriež pozīciju no pirmā rašanās arr1. Ja vērtību nevar atrast, tā atgriež -1 .
  • Visi elementi, kas atrodas abos masīvos, tiek atgriezti ar filter()metodi.

Piezīme. Varat arī izmantot includes()metodi, lai pārbaudītu, vai masīva elementi atrodas abos masīvos.

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

Interesanti raksti...