7.6.2 - Estruturas de repetição
🧩 Loops dentro de Loops? Entendendo as Estruturas Aninhadas
🧩 Loops dentro de Loops? Entendendo as Estruturas Aninhadas
Sim! Você pode ter um loop dentro de outro loop — isso se chama estrutura de repetição aninhada. Mas ⚠️ atenção: apesar de parecer simples, isso pode afetar bastante o desempenho do seu código.
Vamos entender tudo isso de forma leve? 😎
🧊 O que são loops aninhados?
É quando colocamos um loop dentro de outro. É muito útil para trabalhar com listas dentro de listas (como tabelas ou matrizes).
👀 Exemplo: mostrar uma tabela de multiplicação
for (let i = 1; i <= 3; i++) {
for (let j = 1; j <= 3; j++) {
console.log(`${i} x ${j} = ${i * j}`);
}
}🧠 Dica: pense em "camadas" — o primeiro loop controla a linha, o segundo controla a coluna!
⏱️ Complexidade de Algoritmos e Loops Aninhados
Quando falamos de eficiência do código, usamos algo chamado complexidade de tempo — ou seja, quanto tempo leva para o código rodar à medida que os dados crescem.
💡 Cada loop que percorre n elementos tem complexidade O(n).
Se você aninha dois loops, isso vira O(n²) — ou seja, bem mais lento com grandes volumes de dados.
📉 Exemplo simples:
Se numeros tiver 5 elementos, o total de execuções será 25 vezes.
Se tiver 100 elementos? 10.000 vezes! 😵
👎 Quando os loops aninhados são problema?
Ao comparar muitos dados entre si (ex: verificar se há números repetidos em um array)
Em algoritmos de ordenação ou busca não otimizados
Em páginas web, pode deixar a interface lenta ou travada
⚠️ Por isso, evite usar loops aninhados quando possível — ou use com consciência!
🧠 Métodos que fazem "loop" por você
JavaScript tem alguns métodos que iteram por trás dos panos. São mais curtos, mais elegantes e geralmente mais eficientes!
🔁 forEach
forEach🔍 filter — filtra elementos
filter — filtra elementos🔄 map — transforma elementos
map — transforma elementos💯 reduce — acumula valores
reduce — acumula valoresEsses métodos funcionam com arrays e evitam muitos fors desnecessários!
🎒 O que são objetos e classes iteráveis?
🧺 Um iterável é algo que você pode percorrer com for...of, como:
arrays
strings
maps
sets
👨🏫 Você também pode criar seus próprios objetos iteráveis (nível avançado, mas poderoso!)
👀Este código define um objeto (que não é iterável por padrão) iterável.
🧠 Boas práticas com loops aninhados
✅ Só use se realmente for necessário
✅ Considere usar métodos como map, filter, find
✅ Tente dividir o problema em partes menores
✅ Dê nomes claros às variáveis internas
✅ Use comentários para explicar loops mais complexos
🧨 Desafios com loops aninhados
🧩 Desafio 1: Dado um array de arrays (matriz), imprima todos os valores
🧩 Desafio 2: Encontre todas as combinações possíveis entre dois arrays:
📌 Conclusão
Loops aninhados são poderosos 🧠, mas devem ser usados com cuidado! Aprender sobre eficiência, boas práticas, métodos nativos e iteráveis vai deixar você muito mais preparado para resolver problemas do mundo real.
🚀 Saber usar bem as estruturas de repetição te coloca em um novo nível na programação! Continue praticando, explorando e desafiando a si mesmo! 💪
Atualizado


