1
resposta

[Dúvida] Duvida

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?

1 resposta

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!

Caso este post tenha te ajudado, por favor, marcar como solucionado ✓