refiz meu código após novos estudos, gostaria de uma opinião.
let carrinho = [];
let total;
limpar();
function adicionar (){
let produto = document.getElementById('produto').value
let nomeProduto = produto.split('-')[0].trim();
let valorProduto = Number(produto.split('$')[1]);
let quantidadeProduto = Number(document.getElementById('quantidade').value);
const produtoProcurado = carrinho.find( prod => prod.nomeProduto === nomeProduto)
if (produtoProcurado){
produtoProcurado.quantidadeProduto += quantidadeProduto;
produtoProcurado.subtotal = produtoProcurado.quantidadeProdutovalorProduto
} else {
carrinho.push ({nomeProduto: nomeProduto,
valorProduto: valorProduto,
quantidadeProduto: quantidadeProduto,
subtotal: quantidadeProdutovalorProduto})
}
total = carrinho.reduce((acc,item) => item.subtotal + acc, 0);
produtosNoCarrinho(carrinho);
}
function limpar (){
carrinho = [];
total = 0;
produtosNoCarrinho(carrinho);
}
function produtosNoCarrinho(lista){
document.getElementById('lista-produtos').innerHTML = lista.map((itemAtual) => <section class="carrinho__produtos__produto"> <span class="texto-azul">${itemAtual.quantidadeProduto}x</span> ${itemAtual.nomeProduto} <span class="texto-azul">R$${itemAtual.subtotal}</span> </section>).join('');
document.getElementById('valor-total').innerHTML = R$${total};
}