1
resposta

[Sugestão] Recalculo de quantidade e valor do produto caso ele ja esteja na lista do carrinho

Olá pessoal,

Venho compartilhar com vocês algo que quebrou um pouco a cabeça, mas no final ficou legal, implementação abaixo de uma função para recalcular a quantidade e valor do produto caso ele já esteja na lista do carrinho, segue exemplo da implementação e código abaixo

function adicionarCarrinho(qtd,nome,val) {
    //V1.3 Adicionado recalculo de quantidade e valor do produto caso ele ja esteja na lista do carrinho
    if (listaCarrinho.some(item => item.includes(nome))) {
        let posicaoArray = listaCarrinho.findIndex(item => item.includes(nome));
        let posicaoNomeQuantidade = listaCarrinho[posicaoArray].indexOf(`x</span> ${nome}`);
        let quantidadeProdutoAnterior = parseInt(listaCarrinho[posicaoArray].slice(posicaoNomeQuantidade-3,posicaoNomeQuantidade).match(/\d+/)[0]);
        let posicaoNomeValor = listaCarrinho[posicaoArray].indexOf('R$');
        let valorProdutoAnterior = parseInt(listaCarrinho[posicaoArray].slice(posicaoNomeValor,posicaoNomeValor+6).match(/\d+/)[0]);
        listaCarrinho[posicaoArray] = `<section class="carrinho__produtos__produto"><span class="texto-azul">${quantidadeProdutoAnterior+qtd}x</span> ${nome} <span class="texto-azul">R$${valorProdutoAnterior+val}</span></section>` 
        document.getElementById('quantidade').value = '';
        document.getElementById('produto').value = '';
        let listaCarrinhoFinal = document.getElementById('lista-produtos');
        listaCarrinhoFinal.innerHTML = listaCarrinho.join('');
        return listaCarrinhoFinal;
    } else {
        listaCarrinho.push(`<section class="carrinho__produtos__produto"><span class="texto-azul">${qtd}x</span> ${nome} <span class="texto-azul">R$${val}</span></section>`);
        document.getElementById('quantidade').value = '';
        document.getElementById('produto').value = '';
        let listaCarrinhoFinal = document.getElementById('lista-produtos');
        listaCarrinhoFinal.innerHTML = listaCarrinho.join('');
        return listaCarrinhoFinal;
    }

}
1 resposta

Olá, Victor! Como vai?

Muito interessante a sua implementação para recalcular a quantidade e o valor do produto caso ele já esteja no carrinho de compras! Isso é uma funcionalidade muito útil em um sistema de carrinho de compras, pois permite que o usuário possa adicionar mais unidades do mesmo produto sem ter que procurá-lo novamente.

Além disso, lhe parabenizo pela iniciativa de compartilhar a sua implementação com os demais alunos aqui fórum!

Continue assim e bons estudos!