W3docs

Arrays em JavaScript

Aprenda arrays em JavaScript do zero: como criá-los, adicionar e remover elementos, iterar, transformar com map/filter/reduce, ordenar e pesquisar.

Introdução aos Arrays em JavaScript

Um array em JavaScript é uma coleção de valores ordenada e indexada por inteiros. Ao contrário dos objetos, que armazenam propriedades com chaves sem ordem garantida, um array mantém seus itens em uma sequência específica e permite acessar qualquer item pela sua posição (seu índice). Os índices começam em 0, portanto o primeiro elemento está no índice 0, o segundo no índice 1, e assim por diante.

Os arrays são uma das estruturas de dados mais utilizadas na linguagem porque podem conter uma mistura de qualquer tipo de valor — números, strings, booleans, objects, até outros arrays — e crescem ou encolhem automaticamente conforme você adiciona e remove itens. Esta página cobre como criar arrays, alterar seu conteúdo, percorrê-los em loop, transformá-los, pesquisá-los e as práticas que mantêm o código com muitos arrays legível.

Criando e Inicializando Arrays

A maneira mais comum de criar um array é a sintaxe de array literal — uma lista separada por vírgulas dentro de colchetes:

let fruits = ["Apple", "Banana", "Cherry"];

Você também pode usar o construtor new Array(), embora raramente seja utilizado e tenha um caso especial confuso: quando você passa um único número, ele define o comprimento do array em vez de adicionar esse número como elemento.

javascript— editable

Por causa dessa armadilha, prefira a sintaxe literal para tudo, exceto quando quiser deliberadamente pré-dimensionar um array.

Acessando Elementos e o Comprimento

Leia ou substitua um elemento pelo seu índice, e leia a contagem total com a propriedade length. Atribuir a um índice além do final atual estende o array.

javascript— editable

Adicionando e Removendo Elementos

Quatro métodos cobrem as duas extremidades de um array. Preste atenção ao valor que cada um retorna — essa é uma fonte comum de bugs.

  • push() — adiciona um ou mais elementos ao final e retorna o novo comprimento.
javascript— editable
  • pop() — remove o último elemento e retorna esse elemento.
javascript— editable
  • unshift() — adiciona um ou mais elementos ao início e retorna o novo comprimento.
javascript— editable
  • shift() — remove o primeiro elemento e retorna esse elemento.
javascript— editable

Inserindo e Removendo no Meio com splice()

push/pop/shift/unshift afetam apenas as extremidades. Para adicionar, remover ou substituir itens em qualquer posição, use splice(start, deleteCount, ...itemsToInsert). Ele altera o array no lugar e retorna um array com os itens removidos.

javascript— editable

Copiando uma Seção com slice()

slice(start, end) retorna uma cópia superficial de uma parte do array sem modificar o original. O índice end não é incluído.

javascript— editable

Iterando Sobre os Elementos

Há várias maneiras de percorrer um array em loop. Use um loop for...of ou forEach() quando quiser apenas cada valor; recorra a loops baseados em índice somente quando realmente precisar do índice. (Consulte o capítulo sobre loops para o conjunto completo de formas de loop.)

  • for...of — a maneira mais limpa de ler cada valor em ordem.
javascript— editable
  • forEach() — executa um callback uma vez por elemento, recebendo o valor, o índice e o próprio array.
javascript— editable

Transformando Arrays

Esses métodos retornam um novo array (ou valor) em vez de modificar o original, o que os torna ideais para processamento de dados previsível e encadeável.

  • map() — cria um novo array transformando cada elemento.
javascript— editable
  • filter() — cria um novo array com apenas os elementos que passam em um teste.
javascript— editable
  • reduce() — reduz todo o array a um único valor acumulando um resultado. Recebe um callback (accumulator, current) e um valor inicial.
javascript— editable

Como map e filter retornam cada um um array, você pode encadeá-los:

javascript— editable

Pesquisando Arrays

  • includes() — retorna true/false indicando se um valor existe. indexOf() retorna o índice do valor, ou -1 se não for encontrado.
javascript— editable
  • find() e findIndex() — retornam o primeiro elemento (ou seu índice) que satisfaz um callback de teste.
javascript— editable

Ordenando Arrays

sort() ordena os elementos no lugar e retorna o mesmo array.

Aviso

Por padrão, sort() converte os elementos em strings e os compara lexicograficamente. Para números isso gera resultados surpreendentes (por exemplo, 10 ordena antes de 2). Sempre passe uma função de comparação (a, b) => a - b para ordenação numérica.

javascript— editable

Convertendo Arrays em Strings

O método join() combina todos os elementos em uma única string, usando o separador que você passa (por padrão, uma vírgula).

javascript— editable
Informação

Esta página cobre os fundamentos. Para o catálogo completo com cada assinatura de método, consulte Métodos de Array em JavaScript.

Operações Avançadas com Arrays

Arrays Multidimensionais

Como um array pode conter outros arrays, você pode modelar grades e matrizes. Use dois índices — matrix[row][column] — para acessar um valor interno.

javascript— editable

O Operador Spread

O operador spread (...) expande um iterável — um array ou string — em elementos individuais onde múltiplos valores são esperados. É a maneira moderna de combinar e copiar arrays. (Para a forma de coleta relacionada, consulte parâmetros rest e sintaxe spread.)

  • Combinando arrays:
javascript— editable
  • Copiando um array (uma cópia superficial, portanto o original não é alterado):
javascript— editable
  • Passando itens de um array como argumentos de função:
javascript— editable

Desestruturação de Arrays

A desestruturação desempacota valores de arrays em variáveis separadas em uma única instrução. (A mesma ideia se aplica a objects — consulte atribuição de desestruturação.)

javascript— editable
  • Trocando variáveis sem uma variável temporária:
javascript— editable
  • Valores padrão preenchem quando uma posição está ausente:
javascript— editable

Boas Práticas para Usar Arrays

  • Declare com const quando a referência do array não vai mudar. const apenas impede a reatribuição da variável — você ainda pode usar push, pop e editar elementos, porque o conteúdo do array não está congelado.
javascript— editable
  • Prefira map, filter e reduce a loops manuais para transformar dados — eles descrevem a intenção e retornam novos arrays em vez de modificar estado compartilhado.
  • Use o operador spread para copiar antes de modificar quando quiser evitar alterar o array original.
  • Sempre passe uma função de comparação para sort() ao trabalhar com números.

Conclusão

Os arrays são a base do tratamento de dados em JavaScript: ordenados, baseados em índices e de tamanho dinâmico. Assim que você souber quais métodos modificam o array (push, pop, splice, sort) versus quais retornam novos valores (map, filter, slice, reduce), você poderá manipular coleções com confiança. Combine isso com o operador spread e a desestruturação para código conciso e legível. Em seguida, explore a referência completa de métodos de array e como os arrays se comparam com objetos JavaScript.

Prática

Prática
Quais das opções a seguir são formas válidas de criar um array em JavaScript?
Quais das opções a seguir são formas válidas de criar um array em JavaScript?
Prática
O que o método pop() retorna?
O que o método pop() retorna?
Prática
Por que você deve passar uma função de comparação para sort() ao ordenar números?
Por que você deve passar uma função de comparação para sort() ao ordenar números?
Was this page helpful?