1
resposta

[Projeto] Resolução de Atividades - 08 Projeto final do curso

let amigosIncluidos = []; 
let campoAmigosIncluidos = document.getElementById ("lista-amigos");
let amigosSorteados = [];
let campoSorteados = document.getElementById ("lista-sorteio");
let campoNomeDigitado = document.getElementById ("nome-amigo");
function adicionar() {
    let nomeDigitado = document.getElementById ("nome-amigo").value;
    if (nomeDigitado == "") {
        alert ("O campo está vazio. Adicione um nome para sortear.");
        return;
    }
    if (amigosIncluidos.includes (` ${nomeDigitado}`)) {
        alert ("Esse nome já foi adicionado. Caso seja outra pessoa, por favor, adicione o sobrenome para diferenciar.");
        return;
    }
    
    amigosIncluidos.push (` ${nomeDigitado}`);
    campoAmigosIncluidos.textContent = amigosIncluidos; 
    campoNomeDigitado.value = "";
}
function sortear() {
    amigosSorteados = [];
    campoSorteados.innerHTML = "";
    let numeroParticipantes = amigosIncluidos.length;
    if (numeroParticipantes <= 3) {
        alert ("Para uma melhor experiência com o sorteador, adicione no mínimo 4 participantes.");
        return;
    }
    for (let n = 0; n <= numeroParticipantes - 1; n++) {
        let numeroSorteado = obterNumeroAleatorio (0, numeroParticipantes - 1);
        if (amigosSorteados.includes (amigosIncluidos[numeroSorteado])) {
            return sortear();
        }
        if (amigosIncluidos[n] == amigosIncluidos[numeroSorteado]) {
            return sortear();
        }
        amigosSorteados[n] = amigosIncluidos[numeroSorteado];    
    }
    for (n = 0; n <= numeroParticipantes - 1; n++) {
        campoSorteados.innerHTML = campoSorteados.innerHTML + `${amigosIncluidos[n]} -> ${amigosSorteados[n]} <br>`;
    }
}
function reiniciar() {
    campoAmigosIncluidos.textContent = "";
    amigosIncluidos = [];
    amigosSorteados = [];
    campoSorteados.innerHTML = "";
    campoNomeDigitado.value = "";
}
function obterNumeroAleatorio (min, max) {
    return Math.floor(Math.random() * (max - min + 1)) + min;
}
1 resposta

Oi, Matheus! Como vai?

Gostei bastante da forma como você estruturou as funções adicionar, sortear e reiniciar, ficou bem organizado. O uso do includes() para evitar duplicações foi uma boa escolha.

Uma dica interessante para o futuro é usar o método join() para exibir os nomes com mais clareza, separando por vírgula.


let amigos = ["Ana", "Joao", "Carlos"];

console.log(amigos.join(", "));

Esse código transforma o array em uma string separada por vírgulas.

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