Esta seção funciona como uma referência prática sobre arrays no JavaScript. A ideia é entender como armazenar vários valores em uma única estrutura, percorrer esses dados, buscar informações, transformar listas e usar arrays para controlar a interface de uma página.
Ao final deste guia, você deve conseguir:
for, for...of e forEach();push(), pop(), includes(), indexOf(), slice(), splice(), filter(), map() e reduce();Um array é uma estrutura que guarda vários valores em uma única variável.
Em vez de criar várias variáveis soltas:
const nome1 = 'Ana';
const nome2 = 'Bruno';
const nome3 = 'Carla';
Você pode organizar tudo em uma lista:
const nomes = ['Ana', 'Bruno', 'Carla'];
Isso facilita várias tarefas:
Pense no array como uma sequência de posições.
const frutas = ['maca', 'banana', 'uva'];
Nesse caso:
frutas[0] vale 'maca';frutas[1] vale 'banana';frutas[2] vale 'uva'.O detalhe mais importante para iniciantes é este: arrays começam no índice 0, não no índice 1.
const tarefas = [];
Esse padrão é comum quando a lista será preenchida depois.
const cidades = ['Porto Alegre', 'Pelotas', 'Charqueadas'];
const notas = [7.5, 8.0, 6.5, 9.0];
O JavaScript permite misturar tipos, mas em exercícios e projetos iniciais isso costuma dificultar a leitura.
const dados = ['Ana', 16, true];
Em geral, prefira arrays com dados do mesmo tipo. Objetos serão tratados em uma seção própria logo depois desta.
Para acessar um item, use colchetes com o índice.
const cores = ['azul', 'verde', 'vermelho'];
console.log(cores[0]);
console.log(cores[2]);
Também é possível alterar um valor diretamente:
const cores = ['azul', 'verde', 'vermelho'];
cores[1] = 'amarelo';
Depois disso, o array passa a ser:
['azul', 'amarelo', 'vermelho']
lengthA propriedade length informa quantos elementos o array possui.
const alunos = ['Ana', 'Bruno', 'Carla'];
console.log(alunos.length);
Isso é muito útil para:
Exemplo de verificação:
if (alunos.length === 0) {
console.log('Nenhum aluno cadastrado.');
}
push()Adiciona um item no final do array.
const compras = ['arroz', 'feijao'];
compras.push('leite');
Resultado:
['arroz', 'feijao', 'leite']
pop()Remove o último item do array.
const compras = ['arroz', 'feijao', 'leite'];
compras.pop();
Resultado:
['arroz', 'feijao']
unshift()Adiciona um item no início do array.
const fila = ['Bruno', 'Carla'];
fila.unshift('Ana');
shift()Remove o primeiro item.
const fila = ['Ana', 'Bruno', 'Carla'];
fila.shift();
includes()Verifica se um valor existe no array e retorna true ou false.
const linguagens = ['HTML', 'CSS', 'JavaScript'];
console.log(linguagens.includes('CSS'));
indexOf()Retorna a posição do item encontrado. Se não encontrar, retorna -1.
const linguagens = ['HTML', 'CSS', 'JavaScript'];
console.log(linguagens.indexOf('JavaScript'));
console.log(linguagens.indexOf('PHP'));
Regra prática:
includes() responde se existe;indexOf() informa onde está.slice()Cria uma cópia de parte do array sem alterar o original.
const numeros = [10, 20, 30, 40, 50];
const parte = numeros.slice(1, 4);
Resultado de parte:
[20, 30, 40]
splice()Altera o array original. Ele pode remover, substituir ou inserir itens.
const numeros = [10, 20, 30, 40, 50];
numeros.splice(2, 1);
Resultado:
[10, 20, 40, 50]
Exemplo substituindo um item:
const nomes = ['Ana', 'Bruno', 'Carla'];
nomes.splice(1, 1, 'Beatriz');
Resultado:
['Ana', 'Beatriz', 'Carla']
forBom quando você precisa do índice e quer controle total.
const frutas = ['maca', 'banana', 'uva'];
for (let i = 0; i < frutas.length; i++) {
console.log(i, frutas[i]);
}
for...ofMais simples quando você quer apenas os valores.
const frutas = ['maca', 'banana', 'uva'];
for (const fruta of frutas) {
console.log(fruta);
}
forEach()Muito usado para executar uma ação para cada item.
const frutas = ['maca', 'banana', 'uva'];
frutas.forEach((fruta, indice) => {
console.log(indice, fruta);
});
for: quando o índice é importante ou quando você quer mais controle;for...of: quando o foco é só o valor;forEach(): quando você quer percorrer e executar uma tarefa para todos.map()Cria um novo array transformando cada item do original.
const notas = [6, 7, 8];
const notasDobro = notas.map((nota) => {
return nota * 2;
});
Resultado:
[12, 14, 16]
filter()Cria um novo array apenas com os itens que passam em uma condição.
const notas = [6, 7, 8, 4, 9];
const aprovadas = notas.filter((nota) => {
return nota >= 7;
});
Resultado:
[7, 8, 9]
find()Retorna o primeiro item que atende à condição.
const notas = [6, 7, 8, 4, 9];
const primeiraNotaAlta = notas.find((nota) => {
return nota >= 8;
});
Resultado:
8
reduce()reduce() serve para condensar o array em um único resultado.
Exemplo somando números:
const valores = [10, 20, 30];
const soma = valores.reduce((acumulador, valorAtual) => {
return acumulador + valorAtual;
}, 0);
console.log(soma);
O valor inicial do acumulador, nesse caso, é 0.
Esse método aparece muito para:
join()join() transforma um array em string usando um separador.
const nomes = ['Ana', 'Bruno', 'Carla'];
console.log(nomes.join(', '));
Resultado:
Ana, Bruno, Carla
Isso é útil para mostrar listas no documento sem precisar criar muitos elementos HTML.
Em projetos web, arrays quase sempre aparecem junto com o DOM.
Fluxo comum:
Exemplo simples:
const nomes = [];
const lista = document.querySelector('#lista');
function renderizarLista() {
lista.innerHTML = '';
nomes.forEach(function(nome) {
lista.innerHTML += `<li>${nome}</li>`;
});
}
Essa ideia aparece em praticamente toda interface que mostra coleções de dados.
0Esse é um dos erros mais frequentes nas primeiras aulas.
const nomes = ['Ana', 'Bruno'];
console.log(nomes[5]);
Nesse caso, o retorno será undefined.
slice() com splice()slice() copia parte do array;splice() altera o array original.map() quando a intenção era só percorrerSe você não quer gerar um novo array, forEach() costuma fazer mais sentido.
inputValores de campos HTML costumam chegar como string.
const nota = Number(inputNota.value);
Sem essa conversão, operações numéricas podem se comportar de forma errada.
nomes, produtos, tarefas;As subpastas desta seção mostram arrays em níveis diferentes:
lista-basica/: cadastro simples, exibição e contagem de itens;busca-nomes/: busca parcial, verificação exata e filtragem;fila-atendimento/: ordem de chegada, prioridade e chamada do próximo nome;analisador-numeros/: soma, média, maior e menor valor a partir de um array numérico;playlist/: inserção no início e no fim, busca por nome e remoção com splice().Esses cinco cenários mostram uma progressão útil:
Na próxima seção, 03-objetos/, o foco passa a ser representar entidades com propriedades e combinar isso com arrays.
Se este for seu primeiro contato sério com arrays, siga esta ordem:
push();for e forEach();includes() e indexOf();filter();Os pontos centrais sobre arrays são estes:
0;length informa o tamanho da lista;push() e pop() alteram o final do array;includes() e indexOf() ajudam na busca;for, for...of e forEach() percorrem a lista;map(), filter() e reduce() transformam e resumem dados;Com esse repertório, você passa a ter uma base muito mais forte para formulários, DOM, fetch e qualquer página que trabalhe com coleções de dados.