Sobes.tech
Junior

Come si può verificare che questo campo è un array?

sobes.tech AI

Risposta dell'AI

Esistono diversi modi per verificare se un campo dato è un array:

  1. Array.isArray(): Il metodo più preferito e moderno.

    // Verifica se il valore è un array.
    // Restituisce true o false.
    Array.isArray([]); // true
    Array.isArray({}); // false
    Array.isArray(null); // false
    Array.isArray(undefined); // false
    Array.isArray(123); // false
    Array.isArray('stringa'); // false
    
  2. instanceof Array: Funziona per array creati nel frame corrente.

    // Verifica se l'oggetto è un'istanza della classe Array.
    // Può dare risultati incorretti con iframe.
    [] instanceof Array; // true
    new Array() instanceof Array; // true
    ({}); // false
    
  3. Object.prototype.toString.call(): Metodo affidabile che evita problemi con instanceof in diversi frame.

    // Restituisce una rappresentazione in stringa del tipo dell'oggetto.
    // Per gli array, restituisce "[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. Verifica della proprietà constructor: Meno affidabile, poiché la proprietà constructor può essere modificata.

    // Verifica se il costruttore dell'oggetto è Array.
    [].constructor === Array; // true
    ({}).constructor === Object; // false
    

Il metodo più consigliato e affidabile nella maggior parte dei casi è usare Array.isArray().