Δεν απαιτείται μόνο για έναν προγραμματιστή να ολοκληρώσει εργασίες, αλλά είναι επίσης απαραίτητο να κάνει εργασίες με πιο αποτελεσματικό τρόπο. Υπάρχουν πολλές βιβλιοθήκες διαθέσιμες στο JavaScript σήμερα που διευκολύνουν την εργασία με μεταβλητές για τους προγραμματιστές. Σε αυτό το σεμινάριο θα μάθουμε πώς να χρησιμοποιούμε τις πιο συνηθισμένες λειτουργίες της βιβλιοθήκης Lodash.
Αν δεν έχετε δοκιμάσει ακόμα το Lodash, τώρα είναι η στιγμή. Το Lodash είναι ένα σύγχρονο πακέτο βοηθητικού προγράμματος JavaScript που απλοποιεί την εργασία με πίνακες, ακέραιους αριθμούς, αντικείμενα, κείμενα και άλλους τύπους δεδομένων ευκολότερη.
Θα σας βοηθήσει στην αντιμετώπιση διαφόρων ειδών αντικειμένων και θα σας εξοικονομήσει χρόνο εξαλείφοντας την ανάγκη κωδικοποίησης γενικών μεθόδων. Ο κώδικάς σας θα είναι πιο καθαρός με λιγότερες γραμμές και θα λειτουργεί σε όλα τα προγράμματα περιήγησης. Εάν δεν το χρησιμοποιείτε ήδη, θα πρέπει να το εξετάσετε προσεκτικά.
Η μη υιοθέτηση του Lodash είναι τεράστια απώλεια για τις βάσεις κώδικα JavaScript. Είναι μια χωρίς σφάλματα και κομψή λύση σε κοινές προκλήσεις που έχουμε στη δουλειά και η χρήση της θα κάνει τον κώδικά μας πιο ευανάγνωστο και διαχειρίσιμο.
Ας εμβαθύνουμε σε μερικές από τις πιο δημοφιλείς (ή όχι!) λειτουργίες του Lodash και ας ανακαλύψουμε πόσο εξαιρετικά χρήσιμη και όμορφη είναι αυτή η βιβλιοθήκη.
1. _.ταξινομημένοUniq
Όλες οι διπλότυπες τιμές δεν θα επιστραφούν με αυτήν. Επειδή είναι μόνο για ταξινομημένους πίνακες, αυτό χρησιμοποιείται κυρίως για λόγους ταχύτητας. Αυτό είναι χρήσιμο μόνο εάν έχετε να κάνετε με μια μεγάλη συστοιχία. Εάν θέλετε να βελτιώσετε την ταχύτητα, ταξινομήστε τον πίνακα σας και χρησιμοποιήστε μεθόδους που λειτουργούν καλύτερα με ταξινομημένους πίνακες.
Το Lodash έχει μια σειρά από άλλες λειτουργίες που είναι παρόμοιες με αυτήν. Μπορείτε να δείτε τα .sortedIndex, .sortedIndexBy, .sortedIndexOf, .sortedLastIndex, .sortedLastIndexBy, .sortedLastIndexOf, .sortedUniq, .sortedUniqBy, .sortedUniqBy, .sortedUniqBy, .
2. _.μειώνω
Η _.reduce είναι παρόμοια με μια λειτουργία φίλτρου. Η μόνη διαφορά είναι ότι έχετε την επιλογή να επιλέξετε τη μορφή του επιστρεφόμενου αντικειμένου. Είναι φυσιολογικό, αν δεν καταλαβαίνεις τι λέω. υπάρχει ένα παράδειγμα για αυτό.
Ουσιαστικά, επιστρέφουμε ένα νέο αντικείμενο που περιέχει χρήστες ταξινομημένους ανά ηλικία, αλλά μόνο για άτομα ηλικίας 18 έως 59 ετών. Αυτή η βοηθητική λειτουργία Lodash είναι μια από τις πιο συχνά χρησιμοποιούμενες. Περιλαμβάνεται επίσης στο ES6. Θα ήθελα επίσης να επισημάνω δύο τυπικά σφάλματα: θυμηθείτε να επιστρέψετε το αποτέλεσμα στο τέλος της συνάρτησης και να δώσετε την προεπιλεγμένη τιμή για το αποτέλεσμα ως τρίτη παράμετρο (εδώ).
3. _.πάρε και ._σετ
Για αυτό, θα σας ξεγελάω κάπως δείχνοντας δύο λειτουργίες που εκτελούν σχεδόν το ίδιο πράγμα. Το _.get επιστρέφει μια τιμή ιδιότητας από ένα αντικείμενο και το _.set, καλά, το μαντέψατε, ορίστε μια ιδιότητα με μια τιμή. Τίποτα μοναδικό, εκτός από το ότι μπορείτε να αποκτήσετε πρόσβαση σε μια ιδιοκτησία μέσω της διαδρομής της.
Ας δούμε ένα παράδειγμα.
Εάν η διαδρομή δεν υπάρχει κατά την κλήση του _.set, θα δημιουργηθεί. Δεν θα υπάρχουν άλλα σφάλματα "Δεν είναι δυνατός ο ορισμός "στοιχείων" ιδιοτήτων με απροσδιόριστα". Εάν η διαδρομή δεν υπάρχει, το _.get θα επιστρέψει απροσδιόριστο αντί για σφάλμα. Εάν η διαδρομή επιλυθεί σε απροσδιόριστη, μπορείτε επίσης να δώσετε μια προεπιλεγμένη τιμή (τρίτη παράμετρος).
4. _.βρίσκω
Αντί να κάνουμε loop μέσα από έναν πίνακα για να βρούμε ένα μεμονωμένο αντικείμενο, μπορούμε να χρησιμοποιήσουμε _.find. Αυτό είναι καλό, αλλά δεν είναι το μόνο που μπορεί να κάνει το _.find. Με μία μόνο γραμμή κώδικα, μπορείτε επίσης να ανακαλύψετε ένα αντικείμενο χρησιμοποιώντας πολλές ιδιότητες. Τσέκαρέ το!
5. _.keyBy
Ένα από τα αγαπημένα μου είναι το _.keyBy. Είναι πολύ χρήσιμο όταν προσπαθείτε να αποκτήσετε ένα αντικείμενο με ένα συγκεκριμένο χαρακτηριστικό. Ας υποθέσουμε ότι έχουμε 100 καταχωρήσεις ιστολογίου και θέλουμε να αρπάξουμε αυτή με το αναγνωριστικό "34abc". Πώς θα το κάνουμε; Ας δούμε τι θα γίνει! Αυτή η μέθοδος μπορεί να σας βοηθήσει να οργανώσετε μια συλλογή αντικειμένων εάν ένας διακομιστής την παρέχει ως πίνακα. Μια συνάρτηση μπορεί επίσης να χρησιμοποιηθεί ως δεύτερο όρισμα.
6. _.για Κάθε
Αυτή η μέθοδος θα επαναληφθεί σε μια σειρά αντικειμένων ένα προς ένα, επιτρέποντάς σας να κάνετε ό,τι λογική θέλετε. Σε αυτό το πρώτο παράδειγμα, θα κάνω βρόχο πάνω από μια λίστα με αντικείμενα χρήστη, συγχωνεύοντας το όνομα και το επώνυμό τους για να δημιουργήσω μια νέα ιδιότητα που ονομάζεται fullName.
γιαΚαθένα από αυτά δέχεται δύο παραμέτρους. Ο πίνακας στον οποίο κάνουμε βρόχο είναι η πρώτη παράμετρος. Το δεύτερο όρισμα είναι μια συνάρτηση iterate, με την πρώτη παράμετρο να είναι η αναφορά μεμονωμένου στοιχείου και η δεύτερη να είναι ο τρέχων δείκτης της επανάληψης.
7. _.χάρτης
Ο χάρτης, όπως το forEach, επαναλαμβάνεται σε μια σειρά τιμών. Η συνάρτηση χάρτη, από την άλλη πλευρά, επιστρέφει μια νέα σειρά τιμών που παρέχεται από τη συνάρτηση iterate. Χρησιμοποιούμε την ίδια συλλογή χρηστών όπως στο παράδειγμα μας forEach εδώ. Μπορούμε να χρησιμοποιήσουμε _.map για να δημιουργήσουμε μια νέα μεταβλητή που έχει έναν πεπλατυσμένο πίνακα με τα πλήρη ονόματα όλων των χρηστών.
8. _.διαφορά
Η συνάρτηση διαφοράς θα παράγει έναν νέο πίνακα τιμών που διαφέρουν μεταξύ του πρώτου και του δεύτερου πίνακα. Είναι ζωτικής σημασίας να σημειωθεί ότι οι θέσεις των επιχειρημάτων επηρεάζουν τα αποτελέσματα.
9. _.πάρε
Η συνάρτηση _.get() μπορεί να μας βοηθήσει να εντοπίσουμε ένα στοιχείο μέσα σε ένα αντικείμενο. Μπορούμε να ορίσουμε μια προεπιλεγμένη τιμή για τη συνάρτηση _.get() που θα επιστρέφει εάν ένα στοιχείο δεν βρεθεί στην παρεχόμενη διαδρομή. Η συνάρτηση _.get() παίρνει τρεις παραμέτρους, η πρώτη από τις οποίες είναι το αντικείμενο από το οποίο θέλουμε να λάβουμε ένα στοιχείο. Το μονοπάτι είναι το δεύτερο. Η τρίτη τιμή είναι η προεπιλεγμένη τιμή που θέλουμε να επιστρέψουμε εάν ένα στοιχείο δεν μπορεί να εντοπιστεί.
10. _.βρίσκω
Η συνάρτηση _find() μπορεί να φαίνεται ότι είναι πανομοιότυπη με τη μέθοδο _.get(). Η συνάρτηση _.find(), όπως και η μέθοδος _.get(), δέχεται τρεις παραμέτρους. Ωστόσο, σε αντίθεση με τη μέθοδο _.get(), το πρώτο όρισμα μπορεί να είναι ένας πίνακας ή ένα αντικείμενο. Το δεύτερο όρισμα καθορίζει τη συνάρτηση που θα καλείται σε κάθε επανάληψη. Η τρίτη είσοδος είναι το αρχικό ευρετήριο της συλλογής. Επειδή η συνάρτηση _.find() επαναλαμβάνεται πάνω από κάθε στοιχείο μιας συλλογής.
11. _.ομάδαΑπό
Δημιουργήστε ένα αντικείμενο που ονομάζεται από το αποτέλεσμα μιας συνάρτησης (ή ένα τυχαία επιλεγμένο όνομα ιδιότητας), με κάθε τιμή να είναι ένας πίνακας αντικειμένων με το ίδιο κλειδί.
12. _.σετ
Η μέθοδος _.set() είναι το αντίστροφο της μεθόδου _.get(). Θα αλλάξει την τιμή ενός στοιχείου σε μια δεδομένη διαδρομή. Το αντικείμενο ή ο πίνακας είναι η πρώτη παράμετρος, η διαδρομή είναι η δεύτερη και η τιμή που θέλετε να ορίσετε είναι η τρίτη.
13. _.συγχώνευση
Λειτουργεί παρόμοια με το Object.assign, εκτός από το ότι επανέρχεται βαθιά στην υποκείμενη δομή για να ενημερώσει τα βαθύτερα αντικείμενα αντί να τα αντικαταστήσει.
14. ._deburr
Αυτό είναι ένα μάλλον απλό παράδειγμα. Όλες οι «συνδυαστικές διακριτικές σημάνσεις» αφαιρούνται. Έτσι το «é» γίνεται «ε». Όταν υπάρχει διεθνοποίηση και τοπική προσαρμογή, είναι καλή πρακτική να αφαιρείτε το κείμενο για τις λειτουργίες αναζήτησης.
15. _.αναπήδηση
Αυτή είναι μια από τις πιο αποτελεσματικές στρατηγικές Lodash. Μπορεί επίσης να είναι δύσκολο να κατανοήσετε τι κάνει και πότε πρέπει να το χρησιμοποιήσετε. Η μέθοδος _.debounce() επιστρέφει μια συνάρτηση. Η συνάρτηση της μεθόδου _.debounce() θα καθυστερήσει την επίκληση μέχρι να περάσει ένας καθορισμένος αριθμός χιλιοστών του δευτερολέπτου από την τελευταία κλήση της συνάρτησης.
Συμπέρασμα
Το Lodash είναι μια ισχυρή επέκταση της γλώσσας JavaScript. Με ελάχιστη προσπάθεια, μπορεί κανείς να δημιουργήσει συνοπτικό και αποτελεσματικό κώδικα. Το Lodash είναι επίσης εντελώς αρθρωτό. Αν και ορισμένες από τις λειτουργίες του μπορεί τελικά να καταργηθούν, πιστεύω ότι θα εξακολουθεί να παρέχει πολυάριθμα οφέλη στους προγραμματιστές ενώ παράλληλα θα οδηγεί την εξέλιξη της γλώσσας JS.
Ελπίζω αυτές οι λίγες δυνατότητες του Lodash να σας βοηθήσουν να δείτε πόσο ισχυρό μπορεί να είναι το Lodash όταν εργάζεστε με πίνακες, αντικείμενα και συλλογές. Μπορείτε να επισκεφθείτε το τεκμηρίωση για να εξερευνήσετε μια πληθώρα άλλων επιλογών που έχει να προσφέρει.
Αφήστε μια απάντηση