JavaScript: Fundamentos de Arrays em JavaScript

Última atualização: 2026-10-13

Um array é como uma fileira de gavetas numeradas — cada gaveta tem um número (índice) e guarda algo (dados). Você pode pegar itens pelo número, trocá-los ou adicionar novos no final. Arrays são a estrutura de dados que você mais usará no desenvolvimento do dia a dia.

Métodos de array relacionados:Array.isArray() unshift() forEach shift() filter push() reduce pop() map for...of typeof for

1. O Que É um Array

Um array é uma coleção ordenada de valores que pode armazenar qualquer tipo de dado:

HTML
<script>
let arr = [1, 'olá', true, null, undefined];
</script>

Um único array pode misturar diferentes tipos, mas na prática você geralmente armazenará o mesmo tipo para facilitar o processamento.


Duas maneiras:

HTML
<script>
// Método 1: Sintaxe literal (recomendado — limpo e direto)
let fruits = ['Maçã', 'Banana', 'Laranja'];

// Método 2: Construtor Array
let nums = new Array(1, 2, 3);
let empty = new Array(5);  // Cria um array vazio de comprimento 5, NÃO [5]!
</script>
⚠️ Nota: new Array(5) cria um array vazio com comprimento 5, não um array contendo o número 5! Isso engana muitas pessoas, então fique com o literal [].


3. Acessando Elementos

Índices de array começam em 0, não em 1. O primeiro elemento é [0], o segundo é [1], e assim por diante:

HTML
<script>
let fruits = ['Maçã', 'Banana', 'Laranja'];
fruits[0];   // 'Maçã'
fruits[1];   // 'Banana'
fruits[2];   // 'Laranja'
</script>

Acessar um índice inexistente não lança um erro — retorna undefined:

HTML
<script>
fruits[5];   // undefined
</script>

4. Propriedade length

length retorna o número de elementos no array:

HTML
<script>
let arr = [10, 20, 30];
arr.length;   // 3
</script>

length é sempre um a mais que o maior índice (já que índices começam em 0). O último elemento está em arr.length - 1.


5. Modificando Elementos

Basta atribuir um novo valor via índice:

HTML
<script>
let fruits = ['Maçã', 'Banana', 'Laranja'];
fruits[1] = 'Uva';  // Substitui 'Banana' por 'Uva'
// ['Maçã', 'Uva', 'Laranja']
</script>

Você também pode adicionar elementos por índice (não recomendado — cria slots vazios):

HTML
<script>
fruits[5] = 'Melancia';
// ['Maçã', 'Uva', 'Laranja', empty × 2, 'Melancia']
</script>

▶ Exemplo: Operações Básicas com Arrays

▶ Experimente

6. Métodos Principais

Os métodos de array mais usados para adicionar e remover elementos:

Método Ação Retorna
push() Adicionar no final Novo comprimento
pop() Remover do final Elemento removido
unshift() Adicionar no início Novo comprimento
shift() Remover do início Elemento removido
HTML
<!DOCTYPE html>
<html lang="pt-br">
<head><meta charset="UTF-8"><title>Métodos de Array</title></head>
<body>
<pre id="output"></pre>
<script>
let arr = ['a', 'b', 'c'];

arr.push('d');       // ['a','b','c','d']  retorna 4
arr.pop();           // ['a','b','c']      retorna 'd'
arr.unshift('z');    // ['z','a','b','c']  retorna 4
arr.shift();         // ['a','b','c']      retorna 'z'

document.getElementById('output').textContent = JSON.stringify(arr);
</script>
</body>
</html>
💡 Dica: Truque de memória: push/pop trabalham na cauda; unshift/shift trabalham na cabeça. Métodos que começam com p afetam o final; aqueles que começam com s afetam o início. Métodos com prefixo un adicionam; sem un removem.

▶ Exemplo: Gerenciador de Lista de Frutas

▶ Experimente

7. Verificando Arrays: Array.isArray() vs typeof

typeof retorna "object" para arrays, o que o torna inútil para distinguir arrays de objetos simples:

HTML
<script>
let arr = [1, 2, 3];
typeof arr;              // "object"  ← inútil!
Array.isArray(arr);      // true      ← abordagem correta
</script>
⚠️ Nota: typeof é não confiável para arrays — sempre use Array.isArray().


8. forEach para Iteração

forEach é a maneira mais comum de iterar sobre arrays — mais declarativo que um loop for:

HTML
<!DOCTYPE html>
<html lang="pt-br">
<head><meta charset="UTF-8"><title>forEach</title></head>
<body>
<pre id="output"></pre>
<script>
let fruits = ['Maçã', 'Banana', 'Laranja'];
let result = '';
fruits.forEach(function(fruit, index) {
  result += index + ' ' + fruit + '\n';
});
document.getElementById('output').textContent = result;
</script>
</body>
</html>

Arrow functions tornam ainda mais conciso:

HTML
<script>
fruits.forEach((fruit, index) => {
  console.log(index, fruit);
});
</script>

▶ Exemplo: forEach em Ação

▶ Experimente
⚠️ Nota: Métodos de ordem superior como map, filter e reduce são ainda mais poderosos — cobertos na próxima lição.


Métodos de array relacionados:Array.isArray() unshift() forEach shift() filter push() reduce pop() map for...of typeof for

❓ Perguntas Frequentes

P O que push e unshift retornam?
R Ambos retornam o novo comprimento do array, não o array modificado. Muitas pessoas esperam o próprio array — let arr = [1].push(2) dá 2 (o comprimento), não [1, 2].
P Posso usar break dentro do forEach?
R Não. forEach não tem mecanismo de break. Para sair antecipadamente, use um loop for tradicional ou for...of com break.
P Acessar um índice fora dos limites lança um erro?
R Não. arr[100] retorna undefined quando fora dos limites — nenhuma exceção é lançada. Mas isso pode esconder bugs, então é boa prática verificar o intervalo de índices antes de acessar.

📖 Resumo


📝 Exercícios

  1. Crie um array com 5 nomes de cidades e use forEach para exibir o número e nome de cada cidade na página
  2. Construa uma lista de tarefas: insira tarefas para adicionar no final, clique em "Concluído" para remover a última tarefa e exiba a lista em tempo real
  3. Escreva um programa que recebe 5 números como entrada, armazena em um array e exibe sua soma e média
Web-Tutorial.com

Equipe Técnica Web-Tutorial

Uma plataforma de tutoriais mantida por diversos desenvolvedores. Cada tutorial é escrito e revisado por profissionais da área correspondente. Trabalhamos para manter nosso conteúdo preciso e confiável — se encontrar algum problema, avise-nos.

100%