1
resposta

[Dúvida] Utilização do Return

Estou fazendo os exercicios para praticar as aulas e estou com dificuldade de rodar o script quando tenho um return dentro do if. por exemplo

const candidato1 = {
  nome: "Beto Pêra",
  idade: 45,
  cpf: "12345678900",
  telefone: "11999999999",
  linguagens: ["JavaScript", "Python", "Java"],
};


const candidato2 = {
  nome: "Helen Pêra",
  idade: 40,
  cpf: "12345678900",
  telefone: "11999999654",
  linguagens: ["PHP", "GO", "Java"],
};

const candidato3 = {
  nome: "Violeta Pêra",
  idade: 20,
  cpf: "12345678900",
  telefone: "11999999952",
};

  const chaveCandidato1 = Object.keys(candidato1);
  if (chaveCandidato1.includes("linguagens")) {
    return candidato1.linguagens.forEach((linguagem) => {
      console.log(
        `O candidato ${candidato1.nome} possui conhecimento em: ${linguagem}`
      );
    });
  } else {
    console.log(`${candidato1.nome} não possui linguagens cadastradas`);
  }

console.log("=====================================");

  const chaveCandidato2 = Object.keys(candidato2);
  if (!chaveCandidato2.includes("cpf")) {
    console.error("ERROR: Necessário o registro do CPF");
  } else {
    console.log(`${candidato2.nome} possui CPF cadastrado`);
  }

console.log("=====================================");

  const chaveCandidato3 = Object.keys(candidato3);
  if (!chaveCandidato3.includes("linguagens")) {
    console.log(
      `O candidato ${candidato3.nome} não possui proeficiência em linguagens de programação`
    );
  } else {
    candidato3.linguagens.forEach((linguagem) => {
      console.log(
        `O candidato ${candidato3.nome} possui conhecimento em: ${linguagem}`
      );
    });
  }

o terminal me mostra só o primeiro return e não me mostra o resultado dos outros scripts. Pq isso ocorre?

1 resposta

Olá, Tudo bem?

No JavaScript, o return é usado para terminar a execução de uma função e especificar um valor para ser retornado para quem chamou essa função. Se você usar return fora de uma função, isso causará um erro ou comportamento inesperado, como interromper a execução do script.

No seu exemplo, você está tentando usar return num bloco if que não está numa função. Isso faz com que o JavaScript pare a execução assim que atinge o primeiro return, e é por isso que os scripts após o primeiro bloco if não são executados.

Para corrigir isso, você pode remover o return e apenas deixar a chamada do método forEach para imprimir as linguagens, assim:

const chaveCandidato1 = Object.keys(candidato1);
if (chaveCandidato1.includes("linguagens")) {
  candidato1.linguagens.forEach((linguagem) => {
    console.log(`O candidato ${candidato1.nome} possui conhecimento em: ${linguagem}`);
  });
} else {
  console.log(`${candidato1.nome} não possui linguagens cadastradas`);
}

Desta forma, o script continuará a execução normalmente após o bloco if, permitindo que os outros blocos de código sejam executados.

Espero ter ajudado e bons estudos!

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