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

Resolução

const sorteaNomeAleatorio = (listaDeNomes) =>  {

    const tamanhoDaLista = listaDeNomes.length;

    const numeroAleatorio = Math.floor(Math.random() * tamanhoDaLista);

    const nomeAleatorio = listaDeNomes[numeroAleatorio].nome;

    const pontuacaoDoNome = listaDeNomes[numeroAleatorio].pontuacao;

    return {nomeAleatorio, pontuacaoDoNome};

}

const verificarPontuacao = (pontuacao) => {

    if (pontuacao > 80) {
        return "Parabéns, você foi premiado!";
    } else if (pontuacao >= 50) {
        return "Você quase conseguiu! Fique de olho nos próximos sorteios.";
    } else {
        return "Infelizmente, não foi dessa vez.";
    }

}


const sorteaNomeAtraso = (listaDeNomes) => {

    const resultadoDoSorteio = sorteaNomeAleatorio(listaDeNomes);

    const avaliacao = verificarPontuacao(resultadoDoSorteio.pontuacaoDoNome);

    console.log("Sorteando...");

    
    setTimeout(() => console.log(`Participante sorteado: ${resultadoDoSorteio.nomeAleatorio}\nPontuação: ${resultadoDoSorteio.pontuacaoDoNome}\n${avaliacao}`), 2000);

}


const realizarSorteio = (listaDeNomes) => {
    sorteaNomeAtraso(listaDeNomes);
}


const participantes = [
  { nome: "Laura", pontuacao: 92 },
  { nome: "Pedro", pontuacao: 67 },
  { nome: "Clara", pontuacao: 44 }
];

realizarSorteio(participantes)
1 resposta
solução!

Olá, Jose, como vai?

Seu código atende perfeitamente aos requisitos do exercício, apresentando uma lógica bem organizada com o uso de arrow functions e a manipulação correta do objeto de participantes.

É interessante notar como você estruturou o retorno da função de sorteio para carregar tanto o nome quanto a pontuação, o que facilita a passagem de dados para a verificação final.

A implementação do atraso com o método setTimeout foi feita de forma adequada, garantindo que o fluxo do sorteio ocorra conforme o esperado.

Parabéns por compartilhar sua resolução e continue praticando para fortalecer ainda mais seu domínio sobre funções assíncronas e manipulação de arrays.

O fórum está à disposição para qualquer dúvida ou para você compartilhar novos desafios.

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