Page cover

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!)

Método
O que faz

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!):

Má prática
Por que é ruim?

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ível

  • Nomeie 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 array

  • Array.isArray() → checa se algo é mesmo um array

  • Arrays podem conter funções, objetos e até outros arrays

  • flatMap() → versão turbinada de map + flat


💬 "Quem domina arrays, entende listas, coleções, dados e até o mundo real — afinal, tudo é uma sequência de coisas!" 🧩

Last updated