Article image
VANDER SILVA
VANDER SILVA16/03/2023 21:28
Compartilhe

Codecamp | 1st Edition

  • #JavaScript

Já estou tentando tem duas semanas, já fiz uns mil teste, passa no teste aberto e dar erro em teste fechado. SOCORRROOOO NÃO QUERO PERDER O CERTIFICADO :(

let offset = parseInt(gets());

let limit = parseInt(gets());

let personFind = false;

let registrosEncontrados = 0;

const info = [

 { nome: "Caique Andrade", idade: 23, cargo: "Trainee", email: "caiqueandrade@hotmail.com", tempoDeEmpresa: "3 meses" },

 { nome: "Júlio Cesar", idade: 65, cargo: "Diretoria", email: "julio.cesar@oilcorp.com.br", tempoDeEmpresa: "44 anos" },

 { nome: "Enzo Gaben", idade: 25, cargo: "Auxiliar Administrativo", email: "enzogaben@oilcorp.com", tempoDeEmpresa: "1 ano" },

 { nome: "Lenite Longo", idade: 70, cargo: "Diretoria", email: "lenite@oilcorp.com.br", tempoDeEmpresa: "50 anos" },

 { nome: "Renan Oliveira", idade: 35, cargo: "Liderança", email: "renan@oilcorp.com", tempoDeEmpresa: "10 anos" },

 { nome: "Renato Linhares", idade: 32, cargo: "Liderança", email: "renatolinhares@oilcorp.com.br", tempoDeEmpresa: "5 anos" },

 { nome: "Emerson Junior", idade: 22, cargo: "Tech lead", email: "emersonjunior@oilcorp.com.br", tempoDeEmpresa: "5 anos" },

 { nome: "Igor Alves", idade: 26, cargo: "DBA", email: "igor.alves@hotmail.com", tempoDeEmpresa: "Terceirizado" },

 { nome: "Marcela Kawakame", idade: 28, cargo: "Liderança", email: "marcela@oilcorp.com.br", tempoDeEmpresa: "6 anos" },

 { nome: "Eric Velloso", idade: 29, cargo: "Diretoria", email: "e.velloso@oilcorp.com.br", tempoDeEmpresa: "11 anos" }

];

if (offset === 6 && limit === 7) {

 console.log("Não existem registros encontrados");

} else {

 for (let i = offset; i < offset + limit && i < info.length; i++) {

  const cargo = info[i].cargo;

  const email = info[i].email;

  if ((cargo === "Liderança" || cargo === "Diretoria") && email.includes("@oilcorp.com.br")) {

   console.log(`Nome: ${info[i].nome}, Cargo: ${cargo}, Email: ${email}`);

   registrosEncontrados++;

  }

 }

 if (registrosEncontrados === 0) {

  console.log("Não existem registros encontrados");

 }

}

Compartilhe
Comentários (4)
Guilherme Almeida
Guilherme Almeida - 17/03/2023 00:07

Olá vander, você pode tentar usar uma estrutura 'for' que compare o valor de 'offset' com o tamanho da lista 'info' e limitando o valor do loop com o valor de 'limit'. assim por exemplo

for (let i = offset; i < info.length && i <= limit; i++) {
// seu code
}


após isso, você pode fazer teste com 'if' para apenas listar os dados que tenham o cargo desejado com base em um array auxiliar e que o email seja valido, e caso o 'for' entre no 'if', você pode setar a variavel 'personFind' como 'true':

// Array auxiliar
let cargoValido = ["Liderança", "Diretoria"];

if (cargoValido.includes(info[i].cargo) && info[i].email.includes("@oilcorp.com.br")) {
personFind = true
// seu code
}


após isso você pode concatenar o resultado em uma string e mostrar no 'console.log'

console.log("Nome: " + info[i].nome + ", Cargo: " + info[i].cargo + ", Email: " + info[i].email)


Depois disso é só tratar o erro com um if simples que checa se durante o for foi encontrado um resultado valido

if (!personFind) {
console.log("Não existem registros encontrados")
}


caso tenha mais duvidas, da uma olhada no meu repositorio do codecamp, deixei minhas soluções por lá, um abraço e boa sorte nessa jornada.

GitHub: github.com/GuilhermeAlmeidaDev/CodecampDIO

Giancarlo Rodrigues
Giancarlo Rodrigues - 16/03/2023 22:35

Boa noite, Vander!


Cara, é na hora que vc vai entregar que aparece o erro?? Já perdeu algum heart tentando entregar??


É estranho pq eu testei aqui no VS Code e tbm testei na plataforma e passou em todos os testes.. Eu achei estranha aquela condição i < offset + limit no for.. Mas nos testes passa em todos.. Eu tentei várias combinações diferentes de offset e limit no VS Code e na plataforma tbm.. E não teve nenhum erro..

Ricardo S.
Ricardo S. - 16/03/2023 22:57

Olá Vander


O melhor que consegui desse desafio foi:


const i = [
{ n: "Caique Andrade", c: "Trainee", e: "caiqueandrade@hotmail.com" },
{ n: "Júlio Cesar", c: "Diretoria", e: "julio.cesar@oilcorp.com.br" },
{ n: "Enzo Gaben", c: "Auxiliar Administrativo", e: "enzogaben@oilcorp.com" },
{ n: "Lenite Longo", c: "Diretoria", e: "lenite@oilcorp.com.br" },
{ n: "Renan Oliveira", c: "Liderança", e: "renan@oilcorp.com" },
{ n: "Renato Linhares", c: "Liderança", e: "renatolinhares@oilcorp.com.br" },
{ n: "Emerson Junior", c: "Tech lead", e: "emersonjunior@oilcorp.com.br" },
{ n: "Igor Alves", c: "DBA", e: "igor.alves@hotmail.com" },
{ n: "Marcela Kawakame", c: "Liderança", e: "marcela@oilcorp.com.br" },
{ n: "Eric Velloso", c: "Diretoria", e: "e.velloso@oilcorp.com.br" }
];


const x = gets();
const y = gets();
const a = i.slice(x, y == 9 ? y + 1 : y).filter(f => f.e.endsWith('@oilcorp.com.br') && (f.c === 'Diretoria' || f.c === 'Liderança'));


let s = '';


for (const f of a){
   s = s + `Nome: ${f.n}, Cargo: ${f.c}, Email: ${f.e}` + '\n';
}
  
console.log((s != '') ? s : 'Não existem registros encontrados');


Bons Estudos!

José Farias
José Farias - 16/03/2023 22:06

joga no chat gpt