Array ou Object em JavaScript? A dúvida costuma surgir quando os dados não são claramente uma lista nem um cadastro. A escolha errada aparece depois, em código confuso ou em bugs difíceis de rastrear. Comparamos os dois por critério prático e indicamos qual usar em cada situação.
Para decidir, olhe a natureza dos dados. Array guarda uma sequência ordenada de itens acessados por índice numérico. Object guarda pares chave-valor acessados por nome. Essa diferença define todo o resto.
Acesso e legibilidade
Array usa índice: lista[0] retorna o primeiro item. Funciona bem quando a posição importa. Object usa chave: usuario.nome lê direto o campo. Se você precisa lembrar que a posição 3 é o e-mail, o código fica frágil.
Object vence em clareza quando os campos têm significado próprio. Array vence quando a ordem é o próprio significado.
Ordem dos dados
Array mantém a ordem de inserção e oferece métodos como sort, push e slice. Object, na prática, não garante ordem estável para percorrer chaves, embora engines modernas preservem a inserção para strings. Não conte com isso para lógica de negócio.
Se a ordem é regra, use Array. Se a ordem é acidental, Object resolve.
Performance em operações comuns
Para buscar por posição, Array é direto. Para buscar por nome, Object evita percorrer a lista inteira. Em coleções grandes, iterar um Array para achar um item por chave custa mais do que acessar obj.chave.
Em contrapartida, percorrer todos os itens é natural em Array com for, map ou forEach. Em Object, você precisa de Object.keys, Object.values ou Object.entries.
Tabela comparativa
| Critério | Array | Object | |---|---|---| | Acesso | Índice numérico | Chave nomeada | | Ordem | Garantida | Não confiável para lógica | | Melhor para | Listas, sequências | Registros, cadastros | | Iteração | map, filter, for | Object.entries | | Legibilidade | Depende da posição | Nome autoexplicativo |
Veredito
Para quem busca uma lista ordenada, com itens do mesmo tipo e operações como filtrar ou mapear, a escolha é Array. Para quem busca representar uma entidade com campos nomeados, como um usuário, produto ou configuração, a escolha é Object.
Na prática, os dois convivem. Um Array de Objects é o padrão mais comum em APIs: cada item é um registro com chaves.
FAQ
Array é um Object em JavaScript?
Sim. Em JavaScript, arrays são um tipo especial de object. Isso significa que herdam métodos e propriedades de Object. A diferença está na forma de acesso e nos métodos específicos, como push, map e length, que Objects comuns não têm.
Quando usar Array em vez de Object?
Use Array quando a ordem dos itens importa e quando você precisa percorrer, filtrar ou transformar a coleção. Exemplos: lista de comentários, resultados de busca, histórico de ações. Object serve melhor para descrever um único item com campos nomeados.
Posso usar Object como lista?
Pode, mas não é recomendado. Sem ordem garantida e sem métodos de lista, você perde legibilidade e ganha código extra. Se a intenção é uma sequência, Array comunica melhor a intenção para quem lê o código depois.
Qual é mais rápido?
Depende da operação. Acesso por chave em Object costuma ser direto. Percorrer uma lista inteira é natural em Array. Para coleções pequenas, a diferença raramente é perceptível. Priorize clareza antes de micro-otimizar.
Como transformar um Object em Array?
Use Object.keys(obj), Object.values(obj) ou Object.entries(obj). O primeiro retorna as chaves, o segundo os valores, o terceiro pares [chave, valor]. A partir daí, você aplica métodos de Array normalmente, como map e filter.