Oii, Eduardo! Tudo bem?
Fico muito feliz em ver que você não apenas superou o desafio, mas foi muito além do que foi proposto na aula. Programação é exatamente sobre isso: encarar a dificuldade inicial e transformar em uma solução que faça sentido para você.
Seu código demonstra que você já está explorando conceitos mais avançados e importantes no desenvolvimento de software. Vamos analisar alguns pontos excelentes da sua implementação:
O uso de arrays e objetos:
Diferente da solução da aula, que trabalhava diretamente com o texto da página, você escolheu usar um Array (amigos = []) para armazenar os dados. Essa é uma prática muito comum no mercado, pois separa os dados (a lista de nomes) da visualização (o que aparece na tela). Guardar os nomes como objetos {nome: nomeAmigo} também abre portas para você adicionar mais informações depois, se quiser.
Manipulação do DOM com createElement:
Ao usar o document.createElement("p") dentro do seu forEach, você está criando elementos de forma dinâmica e organizada. Isso deixa o HTML mais limpo e evita erros comuns de concatenação de strings.
Lógica de embaralhamento:
Você implementou uma lógica de embaralhamento manual (muito parecida com o algoritmo de Fisher-Yates), o que é excelente para garantir que o sorteio seja realmente aleatório. Dividir a lista em duas partes ("esquerda" e "direita") para mostrar quem tirou quem foi uma saída criativa para visualizar o resultado.
Dicas de refinamento:
Como você mencionou que "não foi fácil", aqui estão dois pontos que podem ajudar a simplificar ainda mais seu código no futuro:
- Simplificação do objeto: Como por enquanto você só usa o nome, você poderia usar apenas uma lista de textos:
amigos.push(nomeAmigo). Isso facilitaria o acesso na hora de exibir. - Validação de quantidade: Pra um Amigo Secreto funcionar, geralmente precisamos de pelo menos 2 ou 3 pessoas. Você poderia adicionar um
if (amigos.length < 3) na sua função de sortear para avisar o usuário.
Parabéns pelo esforço e pela qualidade do código entregue. É visível que você se dedicou a entender o que cada linha estava fazendo.
Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!