Sobes.tech
Junior

Πώς μπορείτε να ελέγξετε αν αυτό το πεδίο είναι ένας πίνακας;

sobes.tech AI

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

Υπάρχουν διάφοροι τρόποι να ελέγξετε αν ένα δεδομένο πεδίο είναι πίνακας:

  1. Array.isArray(): Ο πιο προτιμώμενος και σύγχρονος τρόπος.

    // Ελέγχει αν η τιμή είναι πίνακας.
    // Επιστρέφει true ή false.
    Array.isArray([]); // true
    Array.isArray({}); // false
    Array.isArray(null); // false
    Array.isArray(undefined); // false
    Array.isArray(123); // false
    Array.isArray('σειρά'); // false
    
  2. instanceof Array: Λειτουργεί για πίνακες που δημιουργήθηκαν στο τρέχον πλαίσιο.

    // Ελέγχει αν το αντικείμενο είναι παράδειγμα της κλάσης Array.
    // Μπορεί να δώσει λανθασμένα αποτελέσματα με iframe.
    [] instanceof Array; // true
    new Array() instanceof Array; // true
    ({}); // false
    
  3. Object.prototype.toString.call(): Αξιόπιστος τρόπος που αποφεύγει προβλήματα με instanceof σε διαφορετικά πλαίσια.

    // Επιστρέφει μια αναπαράσταση σε συμβολοσειρά του τύπου του αντικειμένου.
    // Για πίνακες, επιστρέφει "[object Array]".
    Object.prototype.toString.call([]); // "[object Array]"
    Object.prototype.toString.call({}); // "[object Object]"
    Object.prototype.toString.call(null); // "[object Null]"
    Object.prototype.toString.call(undefined); // "[object Undefined]"
    
  4. Έλεγχος της ιδιότητας constructor: Λιγότερο αξιόπιστος, καθώς η ιδιότητα constructor μπορεί να τροποποιηθεί.

    // Ελέγχει αν ο κατασκευαστής του αντικειμένου είναι Array.
    [].constructor === Array; // true
    ({}).constructor === Object; // false
    

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