Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Challenge Amigo Secreto

Boa Tarde!!! Prezado(a) Monitor:

Por gentileza, gostaria de contar com uma ajuda para compreender a dificuldade que me deparo no erro ou argumento lógico ausente no código abaixo que impede a sua execução: Insira aqui a descrição dessa imagem para ajudar na acessibilidade No aguardo!!! Obrigado!!!

2 respostas
solução!

Olá Marco! Tudo bem?

Vamos analisar o seu código para identificar o que pode estar causando o problema.

  1. Função adicionarAmigoSecreto:

    • Você está tentando usar nomes.push(prompt(...)), mas nomes não foi definido como um array antes disso. Tente inicializar nomes como um array vazio: let nomes = [];.
  2. Uso da função sortearAmigo:

    • Quando você chama sortearAmigo() para inicializar nomesAdicionados, você não está passando nenhum argumento. A função sortearAmigo espera receber uma lista como argumento.
  3. Correção de fluxo:

    • Primeiro, você deve adicionar os nomes à lista e depois sortear um nome a partir dessa lista.

Aqui está uma versão corrigida do seu código:

function adicionarAmigoSecreto() {
    let nomes = [];
    let nome;
    while (nome !== null) {
        nome = prompt('Digite o nome dos seus amigos (ou cancele para terminar):');
        if (nome) {
            nomes.push(nome);
        }
    }
    return nomes;
}

function sortearAmigo(lista) {
    let indice = Math.floor(Math.random() * lista.length);
    return lista[indice];
}

// Lista de nomes
let nomesAdicionados = adicionarAmigoSecreto();
console.log('Nomes adicionados:', nomesAdicionados);

// Exemplo de uso
let nomeEscolhido = sortearAmigo(nomesAdicionados);
console.log('Nome aleatório escolhido:', nomeEscolhido);

Espero ter ajudado e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.

Olá Armando Boa Tarde!!! Obrigado por seu retorno. Compreendi o erro e refiz o código, porém, não estou conseguindo executar. Segue abaixo o código corrigido, e qual o erro ainda que impede a execução??? Ah... Desculpe, marquei como solucionado de forma equivocada... Dá me responder sem ter aberto outro tópico, ou seja, ignorar que está solucionado. No aguardo...Muito agradecido!!!Insira aqui a descrição dessa imagem para ajudar na acessibilidade Insira aqui a descrição dessa imagem para ajudar na acessibilidade