Πρόγραμμα JavaScript για εκτέλεση διατομής μεταξύ δύο συστοιχιών

Σε αυτό το παράδειγμα, θα μάθετε να γράφετε ένα πρόγραμμα JavaScript που θα εκτελεί μια διασταύρωση μεταξύ δύο συστοιχιών.

Για να κατανοήσετε αυτό το παράδειγμα, θα πρέπει να γνωρίζετε τις ακόλουθες ενότητες προγραμματισμού JavaScript:

  • Φίλτρο Javascript Array ()
  • Push Array JavaScript ()
  • Σετ JavaScript και WeakSet

Παράδειγμα 1: Εκτελέστε τομή χρησιμοποιώντας το σετ

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

Παραγωγή

 (1, 3, 5)

Στο παραπάνω πρόγραμμα, πραγματοποιείται μια διασταύρωση μεταξύ array1και array2.

  • Τα στοιχεία πίνακα μετατρέπονται σε Setστοιχεία χρησιμοποιώντας τον new Set()κατασκευαστή.
  • Ο for… ofβρόχος χρησιμοποιείται για την επανάληψη των δεύτερων Setστοιχείων.
  • Η has()μέθοδος χρησιμοποιείται για να ελέγξει αν το στοιχείο βρίσκεται στο πρώτο Set.
  • Εάν το στοιχείο υπάρχει στο πρώτο Set, αυτό το στοιχείο προστίθεται στον πίνακα intersectionResult χρησιμοποιώντας τη push()μέθοδο.

Παράδειγμα 2: Εκτελέστε τομή χρησιμοποιώντας τη μέθοδο φίλτρου ()

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

Παραγωγή

 (1, 3, 5)

Στο παραπάνω πρόγραμμα, πραγματοποιείται μια τομή μεταξύ δύο συστοιχιών χρησιμοποιώντας τη filter()μέθοδο. Η μέθοδος φίλτρου επαναλαμβάνεται σε έναν πίνακα και επιστρέφει τα στοιχεία του πίνακα που περνούν τη δεδομένη κατάσταση.

  • Κάθε στοιχείο του πρώτου πίνακα συγκρίνεται με το δεύτερο πίνακα χρησιμοποιώντας τη indexOf()μέθοδο.
  • Η arr2.indexOf(x)μέθοδος αναζητά το arr2 και επιστρέφει τη θέση της πρώτης εμφάνισης του arr1. Εάν η τιμή δεν μπορεί να βρεθεί, επιστρέφει -1 .
  • Όλα τα στοιχεία που βρίσκονται και στις δύο συστοιχίες επιστρέφονται με τη filter()μέθοδο.

Σημείωση: Θα μπορούσατε επίσης να χρησιμοποιήσετε τη includes()μέθοδο για να ελέγξετε αν τα στοιχεία του πίνακα βρίσκονται και στις δύο σειρές.

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

ενδιαφέροντα άρθρα...