DevPath · Aprenda a programar ESPTEN

Arrays e seus métodos

Adicionar, remover e cortar

Métodos para modificar arrays

Aqui entra a ⚠️ ARMADILHA CLÁSSICA do módulo: alguns métodos mutam o array original (mudam ele no lugar) e outros retornam uma cópia sem tocá-lo. Confundir os dois é a origem de bugs bem traiçoeiros. Nesta lição, push, pop, shift, unshift e splice mutam sim; slice não. Tenha isso em mente.

Adicionar e remover pelas extremidades

const pilha = [1, 2, 3];
pilha.push(4);    // adiciona ao final -> [1, 2, 3, 4]
pilha.pop();      // remove do final -> [1, 2, 3]
pilha.unshift(0); // adiciona ao início -> [0, 1, 2, 3]
pilha.shift();    // remove do início -> [1, 2, 3]
Método O que faz Retorna
push adiciona ao final o novo tamanho
pop remove do final o elemento removido
unshift adiciona ao início o novo tamanho
shift remove do início o elemento removido

slice: copiar um pedaço (não modifica)

slice(inicio, fim) retorna uma cópia de inicio até logo antes de fim. Não altera o array original.

const letras = ["a", "b", "c", "d"];
console.log(letras.slice(1, 3)); // ["b", "c"]
console.log(letras);             // intacto: ["a","b","c","d"]

splice: inserir/remover (modifica sim)

splice(inicio, quantosApagar, ...novos) modifica o array no lugar:

const lista = ["a", "b", "c"];
lista.splice(1, 1);          // apaga 1 a partir do índice 1 -> ["a", "c"]
lista.splice(1, 0, "x");     // insere "x" no índice 1 -> ["a", "x", "c"]

Regra mnemônica: slice slim (suave, copia); splice Sparta (rude, modifica).

Exemplos

push e pop sobre uma pilha

const tarefas = [];
tarefas.push("lavar");
tarefas.push("cozinhar");
tarefas.push("estudar");
console.log(tarefas);        // ["lavar", "cozinhar", "estudar"]
const ultima = tarefas.pop();
console.log(ultima, tarefas); // "estudar" ["lavar", "cozinhar"]
Coloque isto em prática

O DevPath é um curso prático: aqui você lê a teoria; no app você a coloca em prática com exercícios que rodam de verdade, offline.

Comece grátis no app →
← Criar arrays, índices e lengthBuscar elementos →