Sobes.tech
Junior

Πώς να προσδιορίσετε αν μια μεταβλητή περιέχει έναν πίνακα;

sobes.tech AI

Απάντηση από AI

Ο πιο αξιόπιστος τρόπος είναι η χρήση του Array.isArray():

// Ελέγχει αν η τιμή είναι πίνακας
Array.isArray(ηΜεταβλητήΜου);

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

Άλλοι, λιγότερο αξιόπιστοι τρόποι περιλαμβάνουν:

  1. typeof:

    // Για πίνακες, το `typeof` θα επιστρέψει 'object'
    typeof ηΜεταβλητήΜου === 'object';
    

    Είναι λιγότερο αξιόπιστο, καθώς το typeof επιστρέφει 'object' για πολλούς τύπους δεδομένων, όχι μόνο για πίνακες (αντικείμενα, null).

  2. instanceof:

    // Ελέγχει αν το αντικείμενο είναι παράδειγμα της κλάσης Array
    ηΜεταβλητήΜου instanceof Array;
    

    Μπορεί να είναι αναξιόπιστο όταν εργάζεστε με iframe ή παράθυρα με διαφορετικά περιβάλλοντα JavaScript, όπου το Array από ένα περιβάλλον διαφέρει από το άλλο.

  3. Έλεγχος κατασκευαστή:

    // Ελέγχει αν ο κατασκευαστής της μεταβλητής είναι Array
    ηΜεταβλητήΜου.constructor === Array;
    

    Μπορεί επίσης να δημιουργήσει προβλήματα σε διαφορετικά περιβάλλοντα εκτέλεσης.

Πίνακας σύνοψης:

Μέθοδος Αξιοπιστία Περιγραφή
Array.isArray() Υψηλή Εξειδικευμένο για τον έλεγχο πινάκων.
typeof ηΜεταβλητήΜου Χαμηλή Για πίνακες, επιστρέφει 'object'.
ηΜεταβλητήΜου instanceof Array Μεσαία/Χαμηλή (ανάλογα με το πλαίσιο) Ελέγχει αν ανήκει στην κλάση Array.
ηΜεταβλητήΜου.constructor === Array Μεσαία/Χαμηλή (ανάλογα με το πλαίσιο) Ελέγχει την ιδιότητα constructor.

Επομένως, το Array.isArray() είναι η προτιμώμενη και πιο αξιόπιστη μέθοδος.