Sobes.tech
Junior

Como se pode verificar se um campo é um array?

sobes.tech IA

Resposta da IA

Existem várias formas de verificar se um campo dado é um array:

  1. Array.isArray(): A forma mais preferida e moderna.

    // Verifica se o valor é um array.
    // Retorna true ou false.
    Array.isArray([]); // true
    Array.isArray({}); // false
    Array.isArray(null); // false
    Array.isArray(undefined); // false
    Array.isArray(123); // false
    Array.isArray('string'); // false
    
  2. instanceof Array: Funciona para arrays criados na frame atual.

    // Verifica se o objeto é uma instância da classe Array.
    // Pode dar resultados incorretos ao trabalhar com iframes.
    [] instanceof Array; // true
    new Array() instanceof Array; // true
    ({}); // false
    
  3. Object.prototype.toString.call(): Método confiável que evita problemas com instanceof em diferentes frames.

    // Retorna uma representação em string do tipo do objeto.
    // Para arrays retorna "[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ção da propriedade constructor: Menos confiável, pois a propriedade constructor pode ser alterada.

    // Verifica se o construtor do objeto é Array.
    [].constructor === Array; // true
    ({}).constructor === Object; // false
    

A forma mais recomendada e confiável na maioria dos casos é usar Array.isArray().