Pular para o conteúdo

Documentação

Manipulação de arrays

Um array (ou lista) guarda uma sequência ordenada de valores entre colchetes [ ]. Ele pode guardar números, textos, objetos ou até outros arrays.

A maioria dos métodos modernos como map(), filter() e slice() devolve um array novo sem alterar o original. Métodos clássicos como push(), pop(), sort() e reverse() alteram a lista no próprio lugar.

Tamanho e acesso

Descubra quantos itens existem na lista e pegue itens em posições específicas.

length

Informa quantos itens o array possui. É uma propriedade, portanto vai sem parênteses. Também permite esvaziar o array definindo lista.length = 0.

Sintaxe
lista.length
Devolve
Um número: a quantidade de elementos.
const frutas = ['maçã', 'banana', 'laranja'];
console.log(frutas.length);
console.log([].length);
Mostra
3
0

at()

Pega o elemento em uma posição. Aceita índices negativos para contar a partir do final (-1 é o último item).

Sintaxe
lista.at(posicao)
Devolve
O elemento naquela posição, ou undefined se a posição não existir.
const letras = ['a', 'b', 'c', 'd'];
console.log(letras.at(0));
console.log(letras.at(-1));
console.log(letras[1]);
Mostra
a
d
b

Adicionar e remover nas pontas

Operações rápidas no início e no fim da lista. Todas modificam o array original.

push()

Adiciona um ou mais itens ao final do array. Modifica o array original e devolve o novo tamanho.

Sintaxe
lista.push(item1, item2)
Devolve
O novo tamanho (length) do array.
const fila = ['Ana', 'Bruno'];
const tamanho = fila.push('Carla');
console.log(fila);
console.log(tamanho);
Mostra
[ 'Ana', 'Bruno', 'Carla' ]
3

pop()

Remove o último elemento do array e o devolve. Modifica o array original.

Sintaxe
lista.pop()
Devolve
O elemento removido, ou undefined se o array estiver vazio.
const pilha = [10, 20, 30];
const tirado = pilha.pop();
console.log(pilha);
console.log(tirado);
Mostra
[ 10, 20 ]
30

unshift()

Adiciona um ou mais itens no início do array e empurra os outros para frente. Devolve o novo tamanho.

Sintaxe
lista.unshift(item1, item2)
Devolve
O novo tamanho (length) do array.
const podium = ['Prata', 'Bronze'];
podium.unshift('Ouro');
console.log(podium);
Mostra
[ 'Ouro', 'Prata', 'Bronze' ]

shift()

Remove o primeiro elemento do array e o devolve. Modifica o array original.

Sintaxe
lista.shift()
Devolve
O elemento removido, ou undefined se o array estiver vazio.
const clientes = ['Lucas', 'Marina', 'Pedro'];
const atendido = clientes.shift();
console.log(atendido);
console.log(clientes);
Mostra
Lucas
[ 'Marina', 'Pedro' ]

Transformar e filtrar

Os métodos funcionais mais poderosos: não modificam o array original e devolvem uma nova lista.

map()

Aplica uma função em cada item e cria um novo array com os resultados transformados.

Sintaxe
lista.map((item, indice) => novoItem)
Devolve
Um novo array com todos os itens transformados.
const numeros = [1, 2, 3, 4];
const dobrados = numeros.map((n) => n * 2);
console.log(dobrados);
console.log(numeros);
Mostra
[ 2, 4, 6, 8 ]
[ 1, 2, 3, 4 ]

filter()

Cria um novo array com apenas os itens que passaram no teste (onde a função devolveu true).

Sintaxe
lista.filter((item, indice) => condicao)
Devolve
Um novo array contendo os elementos aprovados.
const idades = [12, 18, 25, 15, 30];
const maiores = idades.filter((i) => i >= 18);
console.log(maiores);
Mostra
[ 18, 25, 30 ]

reduce()

Reduz a lista inteira a um único valor (uma soma, uma média ou um objeto agrupado) acumulando os resultados.

Sintaxe
lista.reduce((acumulador, item) => novoAcumulador, valorInicial)
Devolve
O valor final acumulado.
const valores = [10, 20, 30];
const soma = valores.reduce((total, valor) => total + valor, 0);
console.log(soma);
Mostra
60

flat()

Achata sub-arrays aninhados em um único array plano. Por padrão achata 1 nível.

Sintaxe
lista.flat(profundidade)
Devolve
Um novo array com os sub-arrays descompactados.
const caixas = [[1, 2], [3, 4], [5]];
console.log(caixas.flat());
console.log([1, [2, [3]]].flat(2));
Mostra
[ 1, 2, 3, 4, 5 ]
[ 1, 2, 3 ]

flatMap()

Combina um map() com um flat(1). Ideal quando cada item gera uma lista interna de elementos.

Sintaxe
lista.flatMap((item) => subLista)
Devolve
Um novo array mapeado e achatado.
const frases = ['bom dia', 'boa tarde'];
const palavras = frases.flatMap((f) => f.split(' '));
console.log(palavras);
Mostra
[ 'bom', 'dia', 'boa', 'tarde' ]

Buscar e testar

Encontre elementos ou teste se os dados atendem a critérios.

find()

Devolve o primeiro elemento que satisfaz a condição da função. Se ninguém atender, devolve undefined.

Sintaxe
lista.find((item) => condicao)
Devolve
O elemento encontrado, ou undefined.
const usuarios = [{ id: 1, nome: 'Ana' }, { id: 2, nome: 'Beto' }];
const achado = usuarios.find((u) => u.id === 2);
console.log(achado);
Mostra
{ id: 2, nome: 'Beto' }

findIndex()

Devolve o índice do primeiro elemento que satisfaz a condição. Se ninguém atender, devolve -1.

Sintaxe
lista.findIndex((item) => condicao)
Devolve
O índice numérico, ou -1.
const notas = [6, 4, 8, 3];
const indice = notas.findIndex((n) => n < 5);
console.log(indice);
Mostra
1

includes()

Diz se um determinado valor está presente no array. Faz comparação estrita (===).

Sintaxe
lista.includes(valorProcurado)
Devolve
true se o valor estiver na lista, senão false.
const convidados = ['Lucas', 'Carla', 'Tiago'];
console.log(convidados.includes('Carla'));
console.log(convidados.includes('Marcos'));
Mostra
true
false

some()

Testa se pelo menos um elemento satisfaz a condição. Devolve true assim que encontra um caso favorável.

Sintaxe
lista.some((item) => condicao)
Devolve
true se houver pelo menos um correspondente, senão false.
const notas = [5, 4, 8, 3];
const temAprovado = notas.some((n) => n >= 6);
console.log(temAprovado);
Mostra
true

every()

Testa se todos os elementos satisfazem a condição. Devolve false assim que encontra a primeira falha.

Sintaxe
lista.every((item) => condicao)
Devolve
true se todos passarem no teste, senão false.
const idades = [20, 25, 19, 30];
console.log(idades.every((i) => i >= 18));
console.log([18, 15, 22].every((i) => i >= 18));
Mostra
true
false

indexOf() e lastIndexOf()

indexOf() devolve a primeira posição onde um item simples aparece; lastIndexOf(), a última.

Sintaxe
lista.indexOf(valor)
lista.lastIndexOf(valor)
Devolve
O índice numérico, ou -1 se o elemento não for encontrado.
const cores = ['azul', 'vermelho', 'verde', 'vermelho'];
console.log(cores.indexOf('vermelho'));
console.log(cores.lastIndexOf('vermelho'));
console.log(cores.indexOf('preto'));
Mostra
1
3
-1

Recortar e juntar

Crie fatias ou junte itens em novas listas ou em strings.

slice()

Copia uma fatia do array do inicio até antes do fim. Não altera o array original e aceita índices negativos.

Sintaxe
lista.slice(inicio, fim)
Devolve
Um novo array contendo a fatia selecionada.
const letras = ['a', 'b', 'c', 'd', 'e'];
console.log(letras.slice(1, 4));
console.log(letras.slice(-2));
Mostra
[ 'b', 'c', 'd' ]
[ 'd', 'e' ]

concat()

Junta dois ou mais arrays em um novo array, sem modificar os originais.

Sintaxe
lista.concat(outraLista, maisUma)
Devolve
Um novo array com todos os elementos combinados.
const pares = [2, 4];
const impares = [1, 3];
const todos = pares.concat(impares);
console.log(todos);
Mostra
[ 2, 4, 1, 3 ]

join()

Transforma o array em uma string, juntando todos os elementos com o separador escolhido.

Sintaxe
lista.join(separador)
Devolve
Uma string com os itens unidos.
const palavras = ['Aprender', 'JavaScript', 'é', 'legal'];
console.log(palavras.join(' '));
console.log([1, 2, 3].join('-'));
Mostra
Aprender JavaScript é legal
1-2-3

Ordenar e inverter

Altere a ordem dos elementos numéricos e textuais.

sort() e toSorted()

Ordena os elementos. sort() altera o array original no lugar; toSorted() devolve um novo array ordenado sem alterar o original.

Sintaxe
lista.sort((a, b) => a - b)
lista.toSorted((a, b) => a - b)
Devolve
O array ordenado.
const numeros = [10, 5, 40, 25];
numeros.sort((a, b) => a - b);
console.log(numeros);
Mostra
[ 5, 10, 25, 40 ]

reverse() e toReversed()

Inverte a ordem dos itens. reverse() modifica o array original; toReversed() devolve um novo array invertido.

Sintaxe
lista.reverse()
lista.toReversed()
Devolve
O array com os itens invertidos.
const ordem = [1, 2, 3, 4];
ordem.reverse();
console.log(ordem);
Mostra
[ 4, 3, 2, 1 ]

Quer testar? Copie um exemplo e rode no Rascunho.