Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

[Projeto] desafio amigo secreto - 2 etapa

segue o codigo, agora com a função embaralhar

    
    
    let grupoAmigos = [];
    let listaSorteio = document.getElementById('lista-sorteio');

function adicionar() {
    let nomeAmigo = document.getElementById('nome-amigo').value.trim();
    let listaAmigos = document.getElementById('lista-amigos');
    let nomeAmigoUpper = nomeAmigo.toUpperCase();
        if (nomeAmigo === '') {
            alert('Favor inserir o nome no campo');
            return;
        } else {
        if (listaAmigos.textContent == '') {
                listaAmigos.textContent = nomeAmigo;
        } else {
                listaAmigos.textContent = listaAmigos.textContent + ', ' + nomeAmigo;
            }
        if (grupoAmigos.includes(nomeAmigoUpper)) {
                alert("Amigo ja incluido, informe outro nome ou adicione um sobrenome");                
             return;
        } else {
            grupoAmigos.push(nomeAmigoUpper);
            console.log(grupoAmigos);
            nomeAmigo = '';
        }
    }
}        


function sortear() {
    embaralhar(grupoAmigos);
}

function embaralhar(lista) {
    for (let indice = lista.length; indice; indice--) {
        let indiceAleatorio = Math.floor(Math.random() * indice);

        [lista[indice - 1], lista[indiceAleatorio]] = [lista[indiceAleatorio], lista[indice - 1]];
    }
}

function reiniciar() {


}
1 resposta
solução!

Olá, Rony. Tudo bem?

Muito obrigado por compartilhar o seu código aqui com a gente. Parabéns pelo trabalho. Continue com essa dedicação.

Ótimo como você implementou a função embaralhar() utilizando a técnica de Fisher-Yates, garantindo uma distribuição aleatória eficiente. Também é interessante ver como você trata a entrada de nomes para evitar duplicações.

Para melhorar a experiência do usuário, você pode limpar o campo de entrada após adicionar um nome. Veja este ajuste na função adicionar():


function adicionar() {
    let nomeAmigo = document.getElementById('nome-amigo').value.trim();
    let listaAmigos = document.getElementById('lista-amigos');
    let nomeAmigoUpper = nomeAmigo.toUpperCase();

    if (nomeAmigo === '') {
        alert('Favor inserir o nome no campo');
        return;
    }

    if (grupoAmigos.includes(nomeAmigoUpper)) {
        alert("Amigo já incluído, informe outro nome ou adicione um sobrenome");                
        return;
    }

    grupoAmigos.push(nomeAmigoUpper);
    listaAmigos.textContent += listaAmigos.textContent ? ', ' + nomeAmigo : nomeAmigo;
    
    document.getElementById('nome-amigo').value = ''; // Limpa o campo
}

Esse ajuste melhora a usabilidade, evitando que o usuário tenha que apagar o nome manualmente antes de inserir um novo.

  Alura   Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!