Τέσσερις διαφορετικοί τρόποι αναζήτησης μιας σειράς σε JavaScript

Υπάρχουν διάφορες μέθοδοι στο JavaScript που μπορείτε να χρησιμοποιήσετε για να αναζητήσετε ένα στοιχείο σε έναν πίνακα. Ποια μέθοδος επιλέγετε εξαρτάται από τη συγκεκριμένη περίπτωση χρήσης σας.

Για παράδειγμα, θέλετε να βάλετε όλα τα στοιχεία σε έναν πίνακα που πληρούν μια συγκεκριμένη συνθήκη; Θέλετε να ελέγξετε εάν κάποιο στοιχείο πληροί την προϋπόθεση; Θέλετε να ελέγξετε εάν υπάρχει συγκεκριμένη τιμή στον πίνακα; Ή θέλετε να βρείτε το ευρετήριο της τιμής στον πίνακα;

Για όλες αυτές τις περιπτώσεις χρήσης, έχετε καλύψει τις μεθόδους Array.protype της JavaScript. Σε αυτό το άρθρο, θα συζητήσουμε τέσσερις μεθόδους που μπορούμε να χρησιμοποιήσουμε για την αναζήτηση ενός αντικειμένου σε έναν πίνακα. Αυτές οι μέθοδοι είναι:

  1. Φίλτρο
  2. Εύρημα
  3. Περιλαμβάνει
  4. Ευρετήριο

Ας συζητήσουμε καθένα από αυτά.

Array.filter ()

Μπορούμε να χρησιμοποιήσουμε τη μέθοδο Array.filter () για να βρούμε στοιχεία σε έναν πίνακα που πληρούν μια συγκεκριμένη συνθήκη. Για παράδειγμα, εάν θέλουμε να πάρουμε όλα τα στοιχεία σε μια σειρά αριθμών που είναι μεγαλύτεροι από 10, μπορούμε να το κάνουμε αυτό:

const array = [10, 11, 3, 20, 5]; const greaterThanTen = array.filter(element => element > 10); console.log(greaterThanTen) //[11, 20]

Η σύνταξη για τη χρήση της μεθόδου array.filter () είναι η ακόλουθη:

let newArray = array.filter(callback);

όπου

  • newArray είναι ο νέος πίνακας που επιστρέφεται
  • array είναι ο πίνακας στον οποίο καλείται η μέθοδος φίλτρου
  • callback είναι η συνάρτηση επανάκλησης που εφαρμόζεται σε κάθε στοιχείο του πίνακα

Εάν κανένα στοιχείο του πίνακα δεν πληροί την κατάσταση, επιστρέφεται ένας κενός πίνακας. Μπορείτε να διαβάσετε περισσότερα σχετικά με αυτήν τη μέθοδο εδώ.

Υπάρχουν στιγμές που δεν χρειαζόμαστε όλα τα στοιχεία που πληρούν μια συγκεκριμένη προϋπόθεση. Χρειαζόμαστε μόνο ένα στοιχείο που να ταιριάζει με την κατάσταση. Σε αυτήν την περίπτωση, χρειάζεστε τη μέθοδο εύρεσης ().

Array.find ()

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

Ας χρησιμοποιήσουμε τη μέθοδο εύρεσης στον πίνακα στο παραπάνω παράδειγμά μας.

const array = [10, 11, 3, 20, 5]; const greaterThanTen = array.find(element => element > 10); console.log(greaterThanTen)//11

Η σύνταξη για το array.find () είναι

let element = array.find(callback);

Η επιστροφή κλήσης είναι η συνάρτηση που εκτελείται σε κάθε τιμή του πίνακα και λαμβάνει τρία ορίσματα:

  • element - το στοιχείο επαναλαμβάνεται (απαιτείται)
  • index - το ευρετήριο / θέση του τρέχοντος στοιχείου (προαιρετικό)
  • array- ο πίνακας που findκλήθηκε (προαιρετικό)

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

Τι γίνεται όμως αν θέλετε να ελέγξετε εάν ένα συγκεκριμένο στοιχείο βρίσκεται σε πίνακα; Πώς το κάνεις αυτό;

Array. Περιλαμβάνει ()

Η μέθοδος include () καθορίζει εάν ένας πίνακας περιλαμβάνει μια συγκεκριμένη τιμή και επιστρέφει το αληθές ή το λάθος, ανάλογα με την περίπτωση.

Έτσι, στο παραπάνω παράδειγμα, εάν θέλουμε να ελέγξουμε εάν το 20 είναι ένα από τα στοιχεία του πίνακα, μπορούμε να το κάνουμε αυτό:

const array = [10, 11, 3, 20, 5]; const includesTwenty = array.includes(20); console.log(includesTwenty)//true

Θα παρατηρήσετε μια διαφορά μεταξύ αυτής της μεθόδου και άλλων μεθόδων που εξετάσαμε. Αυτή η μέθοδος δέχεται μια τιμή και όχι μια επανάκληση ως το όρισμα. Εδώ είναι η σύνταξη για τη μέθοδο συμπερίληψης:

const includesValue = array.includes(valueToFind, fromIndex)

Οπου

  • valueToFind είναι η τιμή που ελέγχετε στον πίνακα (απαιτείται) και
  • fromIndex είναι το ευρετήριο ή η θέση στον πίνακα από τον οποίο θέλετε να ξεκινήσετε την αναζήτηση του στοιχείου από (προαιρετικό)

Για να αποκτήσουμε την ιδέα του ευρετηρίου, ας επισκεφτούμε ξανά το παράδειγμά μας. Αν θέλουμε να ελέγξουμε εάν ο πίνακας περιέχει 10 σε άλλες θέσεις εκτός από το πρώτο στοιχείο, μπορούμε να το κάνουμε αυτό:

const array = [10, 11, 3, 20, 5]; const includesTenTwice = array.includes(10, 1); console.log(includesTenTwice)//false

Array.indexOf ()

Η μέθοδος indexOf () επιστρέφει το πρώτο ευρετήριο στο οποίο ένα δεδομένο στοιχείο μπορεί να βρεθεί σε έναν πίνακα. Επιστρέφει -1 εάν το στοιχείο δεν υπάρχει στον πίνακα.

Ας επιστρέψουμε στο παράδειγμά μας. Ας βρούμε το ευρετήριο του 3 στον πίνακα.

const array = [10, 11, 3, 20, 5]; const indexOfThree = array.indexOf(3); console.log(indexOfThree)//2

Η σύνταξή της είναι παρόμοια με αυτήν της includesμεθόδου.

const indexOfElement = array.indexOf(element, fromIndex)

Οπου

  • element είναι το στοιχείο που αναζητάτε στον πίνακα (απαιτείται) και
  • fromIndex είναι το ευρετήριο ή η θέση στον πίνακα από τον οποίο θέλετε να ξεκινήσετε την αναζήτηση του στοιχείου από (προαιρετικό)

Είναι σημαντικό να σημειωθεί ότι τόσο οι μέθοδοι όσο includesκαι οι indexOfμέθοδοι χρησιμοποιούν αυστηρή ισότητα ('===') για αναζήτηση στον πίνακα. Εάν οι τιμές είναι διαφορετικών τύπων (για παράδειγμα "4" και 4), θα επιστρέψουν falseκαι -1αντίστοιχα.

Περίληψη

Με αυτές τις μεθόδους πίνακα, δεν χρειάζεται να χρησιμοποιήσετε ένα βρόχο για αναζήτηση σε έναν πίνακα. Ανάλογα με το τι χρειάζεστε, μπορείτε να αποφασίσετε ποια από τις μεθόδους είναι η πιο κατάλληλη για την περίπτωση χρήσης σας.

Ακολουθεί μια σύνοψη του χρόνου χρήσης κάθε μεθόδου:

  • Χρησιμοποιήστε το filterεάν θέλετε να βρείτε όλα τα στοιχεία σε έναν πίνακα που πληρούν μια συγκεκριμένη συνθήκη.
  • Χρησιμοποιήστε το findεάν θέλετε να ελέγξετε εάν τουλάχιστον ένα στοιχείο πληροί μια συγκεκριμένη συνθήκη.
  • Χρησιμοποιήστε το includesεάν θέλετε να ελέγξετε εάν ένας πίνακας περιέχει μια συγκεκριμένη τιμή.
  • Χρησιμοποιήστε το indexOfεάν θέλετε να βρείτε το ευρετήριο ενός συγκεκριμένου στοιχείου σε έναν πίνακα.

Θέλετε να λαμβάνετε ειδοποίηση όταν δημοσιεύω ένα νέο άρθρο; Κάντε κλικ ΕΔΩ.