7.5.2 - Arrays
🧠 Nível 3: Domine os Arrays como um verdadeiro(a) Dev Ninja! 🥷
🧠 Nível 3: Domine os Arrays como um verdadeiro(a) Dev Ninja! 🥷
Chegou a hora de explorar os segredos mais profundos dos arrays em JavaScript. Vamos falar sobre objetos, algoritmos, tipo de referência, e muito mais — tudo com exemplos simples e linguagem clara. Bora virar mestre nisso? 😎
🧑🤝🧑 Arrays e Objetos: primos de primeiro grau!
No JavaScript, tanto arrays quanto objetos são estruturas de dados super importantes.
Arrays: organizam valores em ordem numérica (índices).
Objetos: organizam valores por chave, tipo um dicionário 🗂️.
let frutas = ["maçã", "banana"]; // Array
let pessoa = { nome: "Luan", idade: 20 }; // Objeto
➡️ Internamente, arrays são objetos especiais com propriedades numéricas automáticas.
typeof frutas; // "object" 🤯
🧷 Por que NÃO alterar arrays diretamente?
Mutação = confusão 😵
Se você muda um array diretamente, pode causar bugs difíceis de entender!
let original = [1, 2, 3];
let copia = original;
copia.push(4);
console.log(original); // [1, 2, 3, 4] 😱
💡 Solução: copiar antes de alterar!
let copiaSegura = [...original];
Assim você mantém os dados originais intactos, o que é essencial em projetos maiores ou em equipes.
🧪 Como criar (inicializar) arrays?
Existem várias formas de começar um array:
let vazio = []; // array vazio
let numeros = [1, 2, 3]; // valores fixos
let tamanho = new Array(5); // cria com espaço pra 5 elementos (todos undefined!)
let preenchido = Array(3).fill(0); // [0, 0, 0]
🧬 Arrays são tipo de referência
Se você passar um array pra uma função, e a função alterar esse array… ele muda fora da função também! 😱
function alterar(lista) {
lista.push("novo item");
}
let minhaLista = [];
alterar(minhaLista);
console.log(minhaLista); // ["novo item"]
➡️ Isso acontece porque arrays são referência na memória, não cópia.
🔁 Iterar (percorrer) um array
Você pode percorrer os valores de um array usando vários jeitos:
📜 for clássico
for (let i = 0; i < frutas.length; i++) {
console.log(frutas[i]);
}
🧃 for...of
for (let fruta of frutas) {
console.log(fruta);
}
🔁 forEach
frutas.forEach(fruta => console.log(fruta));
🧰 Todos os métodos de array (principais!)
push()
Adiciona no final
pop()
Remove do final
unshift()
Adiciona no começo
shift()
Remove do começo
concat()
Junta dois arrays
slice()
Corta uma parte do array (sem mudar o original)
splice()
Remove ou adiciona itens (altera o array)
map()
Transforma os itens
filter()
Filtra os itens
reduce()
Reduz tudo a um valor
find()
Encontra o primeiro que atende a condição
includes()
Verifica se tem um valor
indexOf()
Mostra o índice de um valor
sort()
Ordena os itens (atenção com números!)
reverse()
Inverte a ordem
join()
Junta tudo numa string
flat()
Achata arrays dentro de arrays
🔄 Conversão entre array e string
➡️ Array → String
let palavras = ["Oi", "tudo", "bem?"];
let frase = palavras.join(" "); // "Oi tudo bem?"
➡️ String → Array
let nomes = "Ana,Bruno,Carlos";
let arrayDeNomes = nomes.split(","); // ["Ana", "Bruno", "Carlos"]
🧠 Arrays e algoritmos
Arrays são usados em quase todos os algoritmos clássicos da programação, como:
Busca (procurar algo na lista)
Ordenação (organizar números ou textos)
Filtragem e transformação
Estruturas mais complexas, como pilhas, filas e até matrizes!
Se você dominar arrays, vai mandar bem em desafios de lógica, projetos reais, e até em entrevistas de emprego! 🚀
⚠️ Armadilhas comuns (evite isso!):
Usar for
sem condição de parada
Pode causar loop infinito 😬
Modificar arrays dentro de map()
map()
deve retornar um novo array, sem alterar o original
Misturar números e strings no mesmo array sem necessidade
Confunde o propósito da lista
Usar sort()
em números sem função
Ordena como se fossem strings!
let numeros = [100, 2, 10];
numeros.sort(); // [10, 100, 2] ❌ errado
// ✅ Correto:
numeros.sort((a, b) => a - b); // [2, 10, 100]
✅ Boas práticas com arrays
Use const se o array não será reatribuído
Prefira métodos imutáveis (como
map
,filter
) sempre que possívelNomeie o array no plural (ex:
frutas
,usuarios
)Sempre verifique se é mesmo um array:
Array.isArray(x)
🧠 Extras que valem a pena saber
Array.from()
→ transforma quase qualquer coisa em arrayArray.isArray()
→ checa se algo é mesmo um arrayArrays podem conter funções, objetos e até outros arrays
flatMap()
→ versão turbinada demap
+flat
💬 "Quem domina arrays, entende listas, coleções, dados e até o mundo real — afinal, tudo é uma sequência de coisas!" 🧩
Last updated