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

Projeto Amigo Secreto - Não consigo escrver uma código para nomes repetidos.

No Projeto Amigo Secreto eu escrevi o seguinte código:

//O principal objetivo deste desafio é fortalecer suas habilidades em lógica de programação. Aqui você deverá desenvolver a lógica para resolver o problema. // Array para armazenar os nomes dos amigos let listaDeAmigos = [];

// Função para adicionar um amigo à lista function adicionarAmigo() { const inputAmigo = document.getElementById("amigo"); const nomeAmigo = capitalizeFirstLetter(inputAmigo.value.trim());

// Verificar se o campo nome está vazio, e envia mensagem. const regex = /^[A-Za-zÀ]/; if (!regex.test(nomeAmigo)) { alert("Por favor, insira um nome válido."); return; }

if (nomeAmigo === "") { alert("Por favor, insira um nome válido."); return; } listaDeAmigos.push(nomeAmigo); atualizarListaDeAmigos(); inputAmigo.value = ""; }

Eu tentei escrever um código que não aceitasse nomes repetidos, enviasse uma mensagem "O nome ' ' já está na lista", e retornar ao campo de inserir nomes. Eu tentei usando o .includes, mas não obtive sucesso. Alguém pode me ajudar? Alguém tem alguma sugestão? Grato, Eduardo Marchi.

2 respostas

Oi Eduardo, tudo bem? 😊

Entendi sua dúvida no Projeto Amigo Secreto! 🤔 Você quer impedir que nomes repetidos sejam adicionados à lista, certo?

Para fazer essa verificação, você pode usar o método .includes() antes de adicionar o nome na lista. O .includes() verifica se um array contém um determinado elemento.

Veja como você pode modificar seu código:

function adicionarAmigo() {
  const inputAmigo = document.getElementById("amigo");
  const nomeAmigo = capitalizeFirstLetter(inputAmigo.value.trim());

  const regex = /^[A-Za-zÀ]/;
  if (!regex.test(nomeAmigo)) {
    alert("Por favor, insira um nome válido.");
    return;
  }

  if (nomeAmigo === "") {
    alert("Por favor, insira um nome válido.");
    return;
  }

  if (listaDeAmigos.includes(nomeAmigo)) {
    alert(`O nome '${nomeAmigo}' já está na lista!`);
    inputAmigo.value = ""; // Limpa o campo para o usuário inserir outro nome
    return; // Sai da função para não adicionar o nome repetido
  }

  listaDeAmigos.push(nomeAmigo);
  atualizarListaDeAmigos();
  inputAmigo.value = "";
}

Nesse código, antes de listaDeAmigos.push(nomeAmigo), adicionamos um if (listaDeAmigos.includes(nomeAmigo)). Essa linha verifica se o nomeAmigo já existe dentro do array listaDeAmigos. Se o nome já existir, o alert será exibido e a função retorna, impedindo a adição duplicada.

🎓 Para saber mais:

Continue praticando e explorando a lógica de programação! 💪 Com dedicação, você vai longe! 😎

📌 Nota: Otimize seus estudos com o guia "Como turbinar seus estudos utilizando o fórum" e insira o código usando a ferramenta do fórum. como inserir bloco de código

tux matrixCaso este post o tenha ajudado,marque-o como solucionado ☑️.Bons Estudos! 🤓
solução!

Bom Dia Luis Dias.

Você acertou na mosca, funcionou direitinho. Eu já havia tentando usar o ".includes", mas não conseguia formar um raciocínio lógico que funcionasse, a cabeça começou a travar. Muito obrigado pela sua atenção e clareza ao expor a solução, com todos os detalhes. Para uma analfabeto, como eu em programação, ficou muito fácil de compreender. Parabéns, Nota Dez.