Junior
Πώς μπορείτε να ελέγξετε αν αυτό το πεδίο είναι ένας πίνακας;
sobes.tech AI
Απάντηση από AI
Υπάρχουν διάφοροι τρόποι να ελέγξετε αν ένα δεδομένο πεδίο είναι πίνακας:
-
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 -
instanceof Array: Λειτουργεί για πίνακες που δημιουργήθηκαν στο τρέχον πλαίσιο.// Ελέγχει αν το αντικείμενο είναι παράδειγμα της κλάσης Array. // Μπορεί να δώσει λανθασμένα αποτελέσματα με iframe. [] instanceof Array; // true new Array() instanceof Array; // true ({}); // false -
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]" -
Έλεγχος της ιδιότητας
constructor: Λιγότερο αξιόπιστος, καθώς η ιδιότηταconstructorμπορεί να τροποποιηθεί.// Ελέγχει αν ο κατασκευαστής του αντικειμένου είναι Array. [].constructor === Array; // true ({}).constructor === Object; // false
Ο πιο συχνά προτεινόμενος και αξιόπιστος τρόπος είναι η χρήση του Array.isArray().