Oi pessoal, tudo bem?
Segue aqui uma sugestão de resolução do exercício 06 do tópico 01. Vi que na resolução do problema, ao deletar a propriedade "avaliação" o console.log irá exibir a mensagem como se fosse um hardcode, sem avaliar se existe algum conteúdo ou se existe o parâmetro avaliação. Na minha solução abaixo, eu coloco uma condição para verificar se o parâmetro existe e, se caso, verdadeiro, exibe a mensagem considerando o parâmetro de avaliação.
Acho que assim o código fica mais dinâmico e responde melhor a existencia do parâmetro:
dataAtual = new Date().getFullYear()
const livro = {
titulo: 'o universo em uma casca de noz',
autor: 'stephen hawking',
anoPublicacao: 1990,
genero: 'científico',
avaliacao: {
descricao: 'livro bom',
nota: 9.0,
}
}
livro.idadePublicacao = dataAtual - livro.anoPublicacao
//console.log(livro)
delete livro.avaliacao
if (livro.avaliacao == null) {
console.log('*** DETALHES DO LIVRO ***' +'\n Título: ' +livro.titulo +'\n Autor: ' +livro.autor +'\n Ano de Publicação: ' +livro.anoPublicacao +'\n Gênero: '
+livro.genero +'\n Avaliação: Sem Avaliação')
}
else{
console.log('*** DETALHES DO LIVRO ***' +'\n Título: ' +livro.titulo +'\n Autor: ' +livro.autor +'\n Ano de Publicação: ' +livro.anoPublicacao +'\n Gênero: '
+livro.genero +'\n Avaliação: ' +'\n Nota: ' +livro.avaliacao.nota +'\n Comentários: ' +livro.avaliacao.descricao)
}
Fica aí de sugestão e como incentivo pra quem quiser explorar mais possibilidades.
Abraço e seguimos estudando!