Αρχική σελίδα » Κωδικοποίηση » 3 πράγματα που δεν γνωρίζετε σχετικά με τους πίνακες JavaScript

    3 πράγματα που δεν γνωρίζετε σχετικά με τους πίνακες JavaScript

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

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

    1. Προσθέστε προσαρμοσμένες ιδιότητες σε πίνακες

    Εάν επρόκειτο να καθαρίσετε το Διαδίκτυο ψάχνοντας έναν λεπτομερή ορισμό των συστοιχιών JavaScript, θα διαπιστώσετε ότι σχεδόν κάθε πηγή χωρίς αποτυχία θα κατατάξει πίνακα όπως αυτό Πραγματικά είναι, ένα αντικείμενο.

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

    Array, Function, Date, κ.λπ. είναι προκαθορισμένα αντικείμενα JavaScript που έχουν ενσωματωμένες μεθόδους, ιδιότητες και τη δική τους τυποποιημένη σύνταξη.

    Οι πίνακες JavaScript μπορεί να έχουν τρεις διαφορετικούς τύπους ιδιοτήτων:

    1. Δείκτες ενός πίνακα είναι επίσης ιδιότητες
    2. Ενσωματωμένες ιδιότητες
    3. Προσαρμοσμένες ιδιότητες μπορείτε να προσθέσετε μόνοι σας

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

    Οι δείκτες ως Ιδιότητες

    Οι συστοιχίες JavaScript χρησιμοποιούν το Σύνταξη τετράγωνου βραχίονα, όπως var ary = ["πορτοκαλί", "μήλο", "lychee"]..

    Οι δείκτες των στοιχείων του πίνακα είναι βασικά ιδιότητες όπου το ονόματα ιδιοκτησίας είναι πάντα μη αρνητικούς ακέραιους αριθμούς.

    ο στοιχείο-ζεύγος στοιχείων ενός πίνακα είναι παρόμοιο με το ζεύγος κλειδιών-τιμών ενός αντικειμένου.

    Οι δείκτες είναι ένα μοναδικό χαρακτηριστικό του αντικειμένου Array και, σε αντίθεση με τις άλλες ενσωματωμένες ιδιότητες, μπορούν να είναι ορίστηκε μόνο με τη σύνταξη των βραχιόνων, όπως ary [3] = "ροδάκινο"..

    Ενσωματωμένες ιδιότητες

    Οι συστοιχίες έχουν επίσης ενσωματωμένες ιδιότητες, όπως array.length. ο μήκος το ακίνητο φέρει μια ακέραια τιμή που δηλώνει το μήκος μιας συστοιχίας.

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

    Οι ενσωματωμένες ιδιότητες μπορούν να προσπελαστούν είτε με το object.key ή το αντικείμενο ["κλειδί"] σύνταξη. Έτσι, μπορείτε επίσης να γράψετε [μήκος] για πρόσβαση στο μήκος ενός πίνακα.

    Δημιουργία προσαρμοσμένων ιδιοτήτων για το αντικείμενο πίνακα

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

    Δεν υπάρχει συνήθως μεγάλη ανάγκη να προσθέσετε προσαρμοσμένες ιδιότητες σε έναν πίνακα. αυτό είναι ένας από τους λόγους που οι αρχάριοι συνήθως δεν διδάσκονται για αυτό το χαρακτηριστικό. Στην πραγματικότητα, εάν θέλετε να αντιμετωπίζετε έναν πίνακα όπως ένα κανονικό αντικείμενο, προσθέτοντας ζεύγη κλειδιών-αξίας σε αυτό, ίσως και εσείς χρησιμοποιήστε ένα κανονικό αντικείμενο για το σκοπό σας. Αλλά, αυτό δεν σημαίνει ότι δεν υπάρχουν ειδικές περιπτώσεις όπου μπορείτε να χρησιμοποιήσετε το γεγονός ότι ένας πίνακας είναι ένα αντικείμενο, προσθέτοντας μία ή περισσότερες προσαρμοσμένες ιδιότητες σε αυτό.

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

     var ary = ["πορτοκαλί", "μήλο", "lychee"]. ary.itemClass = "φρούτα"; console.log (ary + "είναι" + ary.itemClass). // "πορτοκάλι, μήλο, λίτσε είναι φρούτα" 

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

    2. Βγείτε μέσω των στοιχείων Array

    Πιθανόν να πείτε "το ξέρω ήδη", το οποίο πιθανότατα είναι αλήθεια, γνωρίζετε ήδη πώς να περάσετε από στοιχεία πίνακα. Αλλά είναι επίσης αλήθεια ότι λέγοντας "loop through array elements" είναι λίγο αφηρημένο, καθώς αυτό που πραγματικά βρόχομε είναι το δείκτες της συστοιχίας.

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

    Ωστόσο, από την ECMAScript6, υπάρχει ένας τρόπος να απευθείας βρόχο μέσω των τιμών συστοιχιών χωρίς να ενοχλούμε με δείκτες, και αυτό μπορεί να γίνει χρησιμοποιώντας το για ... βρόχος.

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

     var ary = ["πορτοκαλί", "μήλο", "lychee"]. για (αφήστε το στοιχείο του αρχείου) console.log (στοιχείο);  // "πορτοκαλί", "μήλο", "lychee" 

    Για σύγκριση, με το κανονικό Για loop, παίρνουμε τους δείκτες αντί των τιμών ως έξοδο.

     var ary = ["πορτοκαλί", "μήλο", "lychee"]. για (var στοιχείο = 0, στοιχείο < ary.length; item++) console.log(item);  // 0, 1, 2

    3. Ο αριθμός των στοιχείων δεν είναι το μήκος του

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

    Το μήκος είναι a πολύ ευέλικτη ιδιοκτησία. Είτε έχετε ήδη καθορίσει το μήκος ενός πίνακα ή όχι, εάν συνεχίσετε να προσθέτετε τιμές στη συστοιχία, το μήκος αυξάνεται αναλόγως.

     var ary = []. ary.length = 3; console.log (ary.length); // 3 ary [5] = "abcd". console.log (ary.length); // 6

    Στο παραπάνω παράδειγμα, μπορείτε να δείτε ότι έδωσα στον πίνακα μόνο μία τιμή στο ευρετήριο 5 και το μήκος γίνεται 6. Τώρα, εάν νομίζετε ότι προσθέτοντας μια τιμή στο ευρετήριο 5, ο πίνακας δημιούργησε αυτόματα τους δείκτες από 0 έως 4 , έπειτα η παραδοχή σας είναι εσφαλμένη. Υπάρχουν πραγματικά δεν υπάρχουν υπάρχοντες δείκτες από το 0 έως το 4 σε αυτή τη συστοιχία. Μπορείτε να το ελέγξετε χρησιμοποιώντας το σε χειριστής.

     var ary = []. ary.length = 3; console.log (ary.length); // 3 ary [5] = "abcd". console.log (ary.length); // 6 console.log (0 σε ary); // false

    Η συστοιχία αρα είναι αυτό που ονομάζουμε a "αραιή" συστοιχία, μια σειρά όπου οι δείκτες δεν δημιουργούνται συνεχώς, και έχουν κενά. Το αντίθετο από μια "αραιή" σειρά είναι η "πυκνή" συστοιχία όπου οι δείκτες υπάρχουν συνεχώς στη συστοιχία και ο αριθμός των στοιχείων είναι ο ίδιος με τον μήκος.

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

    Στο παρακάτω παράδειγμα, μπορείτε να δείτε πώς χάνουμε το στοιχείο στο ευρετήριο 5 μειώνοντας το μήκος απο αρα παράταξη.

     var ary = []. ary.length = 3; console.log (ary.length); // 3 ary [5] = "abcd". console.log (ary.length); // 6 ary.length = 2; console.log (ary.length); / / 2 console.log (ary [5]); // undefined

    Περαιτέρω ανάγνωση

    • 10 όρους JavaScript που πρέπει να γνωρίζετε μέχρι τώρα
    • 4 όχι τόσο κοινές αλλά χρήσιμες δηλώσεις Javascript που πρέπει να γνωρίζετε
    • Βελτιστοποίηση κώδικα με JS Hint - ένα εργαλείο για τη χρήση του Javascript