1
resposta

Exercício 04

const anoAtual = new Date().getFullYear(); 

const livro = {
  
  titulo: 'Missão Secreta na Transamazonica',
  autor: 'Assis Brasil',
  anoPublicacao: 2000,
  idadePublicacao: anoAtual - 2000,
  genero: 'Suspense'
  
}

livro.idadePublicacao = anoAtual - livro.anoPublicacao; 

livro.avaliacao = null; 

console.log(livro); 

if (livro.avaliacao === null) {
  livro.avaliacao = 'Boa'; 
} else {
  console.log('\nEsse livro já possui avaliação!\n'); 
}

console.log(`${livro['titulo']}, ${livro['autor']}, ${livro['anoPublicacao']}, ${livro['idadePublicacao']}, ${livro['genero']}, ${livro['avaliacao']}`); 

No enunciado desse exercício em questão não estava pedindo para inserir uma 'nova avaliação'. Estou fazendo essa menção pois o instrutor resolveu criando uma chave com esse nome, veja:

"Depois, adicione uma nova propriedade chamada avaliacao. Esta propriedade deve ser inicializada como null. No final do arquivo livro.js, adicione uma avaliação ao objeto. Caso a propriedade avaliacao seja null, atribua a avaliação ao objeto livro. Caso contrário, imprima uma mensagem indicando que o livro já possui uma avaliação."

Estou muito equivocado na minha interpretação/análise a na forma como eu resolvi o exercício em questão?

1 resposta

Amigo, sua interpretação faz sentido, e essa questão levanta um ponto interessante sobre como os enunciados podem ser interpretados! Vamos analisar o que aconteceu. O instrutor pediu para adicionar uma nova propriedade chamada avaliacao e inicializá-la como null. Então, no final do código, caso essa propriedade ainda seja null, uma avaliação deveria ser atribuída. Caso contrário, uma mensagem deveria ser impressa. Sua abordagem: Você seguiu corretamente a instrução de criar a propriedade avaliacao e inicializá-la como null. No entanto, seu foco parece ter sido verificar a avaliação antes de imprimir. Isso está tecnicamente correto, pois respeita a lógica de que, se a propriedade ainda estiver null, ela recebe um valor. O possível motivo da divergência: O ponto que pode ter causado a interpretação diferente é a expressão "adicionar uma avaliação ao objeto". Dependendo da forma como se lê essa parte, pode-se entender que:

  • Era necessário atribuir a avaliação explicitamente, sem depender de um condicional.
  • Era necessário apenas verificar e adicionar uma avaliação caso null (como você fez). A principal diferença está no momento da atribuição do valor "Boa". Sua abordagem seguiu a lógica condicional antes de imprimir, o que está correto, mas talvez o instrutor esperasse que a avaliação fosse atribuída sem depender dessa verificação posterior. Conclusão: Você não está completamente equivocado, pois aplicou corretamente a lógica condicional. O instrutor parece ter esperado uma atribuição direta ao final, sem depender do if. No fim, foi uma questão de alinhamento entre interpretação e expectativas! Se quiser deixar seu código ainda mais alinhado ao que foi solicitado, você pode fazer a atribuição de forma direta no final do script:

livro.avaliacao = livro.avaliacao ?? "Boa";

Essa abordagem mantém a lógica da verificação, mas faz a atribuição de forma mais direta. Gostei da sua análise crítica sobre o enunciado! Isso mostra que você está atento aos detalhes, o que é essencial no desenvolvimento de software.