Sobes.tech
Junior

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

sobes.tech AI

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

Υπάρχουν αρκετοί τρόποι:

  1. Χρησιμοποιήστε το Array.isArray(). Είναι ο πιο αξιόπιστος και συνιστώμενος τρόπος.

    const arr = [1, 2, 3];
    const obj = { a: 1 };
    
    console.log(Array.isArray(arr)); // true
    console.log(Array.isArray(obj)); // false
    
  2. Χρησιμοποιήστε το instanceof Array. Λειτουργεί για πίνακες που δημιουργήθηκαν στο τρέχον πλαίσιο ή παράθυρο. Μπορεί να δώσει ψευδή αποτελέσματα όταν εργάζεστε με πλαίσια ή σενάρια cross-domain.

    const arr = [1, 2, 3];
    const obj = { a: 1 };
    
    console.log(arr instanceof Array); // true
    console.log(obj instanceof Array); // false
    
  3. Χρησιμοποιήστε το Object.prototype.toString.call(). Επιστρέφει μια συμβολοσειρά που αναπαριστά τον τύπο του αντικειμένου. Για πίνακες, είναι "[object Array]".

    const arr = [1, 2, 3];
    const obj = { a: 1 };
    
    console.log(Object.prototype.toString.call(arr) === '[object Array]'); // true
    console.log(Object.prototype.toString.call(obj) === '[object Array]'); // false
    

Ο πιο προτιμώμενος τρόπος είναι η χρήση του Array.isArray(), καθώς είναι αξιόπιστος και δεν έχει παρενέργειες που σχετίζονται με το πλαίσιο εκτέλεσης.