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:
-
typeof:// Para arrays, typeof devolve 'object' typeof aMinhaVariavel === 'object';É pouco fiável, pois
typeofdevolve'object'para muitos tipos de dados, não apenas para arrays (objetos, null). -
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
Arrayde um contexto difere deArrayde outro. -
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.