JavaScript Coleções Básico
Arrays
Arrays em JavaScript são listas ordenadas de valores, acessados por índices que começam em 0. Eles são objetos especiais que guardam vários itens numa única variável e vêm com métodos prontos para adicionar, remover, fatiar, buscar e ordenar elementos.
Os métodos que alteram o array original são chamados de mutáveis, como push, pop e splice. Já os que devolvem uma cópia sem mexer no original são imutáveis, como slice. Saber diferenciar os dois evita bugs sutis, pois às vezes você quer modificar a lista e às vezes quer preservá-la.
Para verificar se um valor existe use includes (retorna true/false) e para descobrir a posição use indexOf (retorna o índice ou -1). Para ordenar, sort funciona bem com strings, mas números exigem uma função de comparação, porque o padrão do sort converte tudo para texto.
Dominar esses métodos é a base para manipular coleções em qualquer aplicação real: carrinhos de compra, listas de tarefas, resultados de busca e muito mais.
Pontos-chave
pushadiciona no fim epopremove do fim, ambos alterando o array original.splice(inicio, quantidade, ...itens)remove e/ou insere elementos em qualquer posição.slice(inicio, fim)copia um trecho sem modificar o array original.includesretorna booleano eindexOfretorna o índice (ou-1se não achar).sortordena em ordem lexicográfica; para números use(a, b) => a - b.
// Demonstração dos principais métodos de array
const frutas = ['banana', 'maçã'];
// push e pop alteram o fim do array
frutas.push('uva');
frutas.push('pera');
console.log(frutas); // [ 'banana', 'maçã', 'uva', 'pera' ]
const ultima = frutas.pop();
console.log('Removida:', ultima); // Removida: pera
// splice remove 1 item na posição 1 e insere 'kiwi'
frutas.splice(1, 1, 'kiwi');
console.log(frutas); // [ 'banana', 'kiwi', 'uva' ]
// slice copia sem alterar o original
const copia = frutas.slice(0, 2);
console.log('Cópia:', copia); // Cópia: [ 'banana', 'kiwi' ]
console.log('Original intacto:', frutas); // Original intacto: [ 'banana', 'kiwi', 'uva' ]
// includes e indexOf
console.log(frutas.includes('uva')); // true
console.log(frutas.indexOf('kiwi')); // 1
console.log(frutas.indexOf('abacaxi')); // -1
// sort com números precisa de comparador
const numeros = [10, 2, 33, 4];
numeros.sort((a, b) => a - b);
console.log(numeros); // [ 2, 4, 10, 33 ]