Solucionado (ver solução)

Importante

Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!

Solucionado
(ver solução)
13
respostas

erro, ajuda por favor,ainda não deu certo ( for inn)

const cliente = {
    nome: "André",
    idade: 36,
    cpf:'129299448848475',
    email:'123@gmail.com',
    fones: ['0000000000000','1111111111111'],
    dependentes: [
        {
            nome:"Sara",
            parentesco: "filha",
         dataNasc: "20/03/2021"},
         {nome: "samia maria",
            parentesco: "filha",
            dataNasc:"04/01/2014"
        }
    ],

 saldo:100,

 depositar:function(valor)
 {
    this.saldo += valor
 }
}

 let relatorio= " ";
 for ( let info in cliente){
 if(typeof cliente[info]=== "Object" ||  typeof cliente[info]===   "function") {
    continue
 }else{
    relatorio += ` 
      ${cliente[info]}
     `
 } 


}

console;log (typeof cliente.depositar)
console.log (relatorio)
13 respostas
solução!

Oi, Kelvin, tudo bem?

O código não está sendo executado por conta de um ponto e vírgula na penúltima linha do seu código. Perceba que ali você trocou sem querer o ponto do console.log por um ponto e vírgula.

Espero ter ajudado.

Qualquer dúvida pode contar com a gente aqui no fórum.

Abraços e bons estudos!

Ok, fiz a correção no ponto e vírgula, mas mesmo assim não aparece o resultado esperado. no terminal aparece uma sequência de números 0 100 1 200 2 300 3 400 4 500 5 600

Murillo Godoi Pedroso pode verificar essa situação comigo novamente.

Oi, Kelvin, tudo bem?

Entendi, tem dois problemas. O primeiro é que nessa linha if(typeof cliente[info]=== "Object" || typeof cliente[info]=== "function") { continue } o correto seria object, com o minúsculo.

O segundo é que os números estão sendo mostrados soltos no terminal porque faltou inserir no relatório a chave de cada valor mostrado. No else do relatório o correto seria:

 else{
        relatorio += `
        ${info} ==> ${cliente[info]}
        `
        }  

Espero ter ajudado.

Abraços e bons estudos!

Corrigi o object, Coloquei o else da forma com que vc monstrou e mesmo assim não foi

const cliente = {
    nome: "André",
    idade: "36",
    cpf:"129299448848475",
    email:"123@gmail.com",
    fones: ["0000000000000","1111111111111"],
    dependentes: [
        {
            nome:"Sara",
            parentesco: "filha",
         dataNasc: "20/03/2021"},
         {nome: "samia maria",
            parentesco: "filha",
            dataNasc:"04/01/2014"
        }
    ],
saldo:100,

 depositar:function(valor)
 {
    this.saldo += valor
 }
}

 let relatorio= " ";
 for ( let info in cliente){
 if(typeof cliente[info]=== "object" ||  typeof cliente[info]===   "function") {
    continue
 }
  else{
   relatorio += `
   ${info} ==> ${cliente[info]}
   `
    }  


}

console.log (typeof cliente.depositar)
console.log (relatorio)

Oi, Kelvin,

Executei seu código e obtive o resultado esperado:

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

O resultado que você espera não é esse?

Para min continua aparecendo uma sequência de números

Entendi, tenta criar um novo arquivo JavaScript e joga nele esse último código arrumado. Pode ser algum problema relacionado a cache ou com o salvamento do arquivo, pois o código está funcionando corretamente.

Criei um novo arquivo e deu certo obrigado

Que bom! Qualquer dúvida pode contar com a gente aqui no fórum.

Abraços e bons estudos!

você pode me ajudar nesse outro código ?

const cliente = {
    nome: "André",
    idade: "36",
    cpf:"129299448848475",
    email:"123@gmail.com",
    fones: ["0000000000000","1111111111111"],
    dependentes: [
        {
            nome:"Sara",
            parentesco: "filha",
         dataNasc: "20/03/2021"},
         {nome: "samia maria",
            parentesco: "filha",
            dataNasc:"04/01/2014"
        }
    ],

 saldo:100,

 depositar:function(valor)
 {
    this.saldo += valor
 }
}




function oferecerSeguro(obj){
    const propsClientes = object.keys(obj);
    if(propsClientes.includes("dependentes"))
    {
        console.log(`Oferda de seguro de vida para $ {obj.nome}`);
    }

}
oferecerSeguro(cliente)

Oi, Kelvin,

Sim, posso ajudar!

Identifiquei dois problemas.

O primeiro é na linha const propsClientes = object.keys(obj);, pois o O de object precisa ser maiúsculo , ficando assim: const propsClientes = Object.keys(obj);. Caso queira saber mais sobre o método Object.keys recomendo este link.

O segundo problema é que tem um espaço a mais no console.log na hora de mostrar o nome do cliente, perceba que tem um espaço entre o sinal de dólar e a abertura da chave, $ {obj.nome}, tirando esse espaço o nome será mostrado corretamente.

Espero ter ajudado.

Abraços e bons estudos!

Deu certo, muito obrigado denovo, vc me ajudou mt.