Se eu quisesse colocar o valor original dos livros do lado dos livros com desconto, nao seria possivel por causa do funcao aplicarDesconto è isso (?)
Eu deveria fazer outra funcao para ter dois valores um sem e outro com desconto?
Se eu quisesse colocar o valor original dos livros do lado dos livros com desconto, nao seria possivel por causa do funcao aplicarDesconto è isso (?)
Eu deveria fazer outra funcao para ter dois valores um sem e outro com desconto?
Oi, Wesley! Tudo bem?
Podemos exibir o valor original dos livros ao lado dos livros com desconto, mas para fazer isso, precisaremos fazer algumas alterações no nosso código, modificando a estrutura de dados que representa cada livro.
Atualmente, a função aplicarDesconto
está sobrescrevendo o preço original dos livros com o preço com desconto. Dessa maneira, para exibir ambos os valores, podemos modificar a estrutura dos objetos que representam os livros.
Uma abordagem seria criar um objeto que contém tanto o preço original quanto o preço com desconto, como segundo o código abaixo:
function aplicarDesconto(livros) {
const desconto = 0.3;
livrosComDesconto = livros.map(livro => {
const precoComDesconto = livro.preco - (livro.preco * desconto);
return {
...livro,
precoComDesconto: precoComDesconto,
precoOriginal: livro.preco
};
});
return livrosComDesconto;
}
Dessa forma, cada livro no array livrosComDesconto
terá as propriedades precoComDesconto
e precoOriginal
, que podemos usar para exibir ambos os valores na tela.
Para finalizar, então, devemo deixar a função exibirOsLivrosNaTela
da seguinte maneira:
function exibirOsLivrosNaTela(listaDeLivros) {
listaDeLivros.forEach(livro => {
elementoParaInserirLivros.innerHTML += `
<div class="livro">
<img class="livro__imagens" src="${livro.imagem}" alt="${livro.alt}" />
<h2 class="livro__titulo">${livro.titulo}</h2>
<p class="livro__descricao">${livro.autor}</p>
<p class="livro__preco" id="preco">Preço Original: R$${livro.precoOriginal.toFixed(2)}</p>
<p class="livro__preco" id="preco">Preço com Desconto: R$${livro.precoComDesconto.toFixed(2)}</p>
<div class="tags">
<span class="tag">${livro.categoria}</span>
</div>
</div>
`
})
}
Assim, a função exibirOsLivrosNaTela
mostrará tanto o preço original quanto o preço com desconto de cada livro.
Espero ter ajudado! Caso tenha ficado alguma dúvida, sinta-se à vontade em comunicar, estou à disposição!
Um forte abraço e bons estudos!