Sobes.tech
Junior

Como determinar se uma variável contém um array?

sobes.tech IA

Resposta da IA

A forma mais fiável é usar Array.isArray():

// Verifica se o valor é um array
Array.isArray(aMinhaVariavel);

Este método devolve true se a variável for um array, e false caso contrário, independentemente do contexto de execução ou outros fatores.

Outros métodos menos fiáveis incluem:

  1. typeof:

    // Para arrays, typeof devolve 'object'
    typeof aMinhaVariavel === 'object';
    

    É pouco fiável, pois typeof devolve 'object' para muitos tipos de dados, não apenas para arrays (objetos, null).

  2. instanceof:

    // Verifica se o objeto é uma instância da classe Array
    aMinhaVariavel instanceof Array;
    

    Pode ser pouco fiável ao trabalhar com iframes ou janelas com diferentes contextos de execução JavaScript, onde Array de um contexto difere de Array de outro.

  3. Verificação do construtor:

    // Verifica se o construtor da variável é Array
    aMinhaVariavel.constructor === Array;
    

    Também pode apresentar problemas em diferentes contextos de execução.

Tabela resumo:

Método Fiabilidade Descrição
Array.isArray() Alta Específico para verificar arrays.
typeof aMinhaVariavel Baixa Para arrays devolve 'object'.
aMinhaVariavel instanceof Array Moderada/Baixa (dependendo do contexto) Verifica se pertence à classe Array.
aMinhaVariavel.constructor === Array Moderada/Baixa (dependendo do contexto) Verifica a propriedade constructor.

Assim, Array.isArray() é o método preferido e mais fiável.