Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

191
Visualizações
Carrito eliminar un artículo y aplicar un cupón en js

Estoy tratando de eliminar un artículo sin eliminar el carrito y reducir un precio si el cliente tiene un cupón o supera una cierta cantidad mientras js antes de usar Django aquí está el código html js si tiene algún consejo, no dude

html

 <div data-name="name" data-price="250" data-id="2"> <img src="x.jpg" alt="" /> <h3>name</h3> <input type="number" class="count" value="1" /> <button class="tiny">Add to cart</button> </div> <script type="text/template" id="cartT"> <% _.each(items, function (item) { %> <div class = "panel"> <h3> <%= item.name %> </h3> <span class="label"> <%= item.count %> piece<% if(item.count > 1) {%>s <%}%> for <%= item.total %>$</span > </div> <% }); %> </script>

js

 addItem: function (item) { if (this.containsItem(item.id) === false) { this.items.push({ id: item.id, name: item.name, price: item.price, count: item.count, total: item.price * item.count }); storage.saveCart(this.items); } else { this.updateItem(item); } this.total += item.price * item.count; this.count += item.count; helpers.updateView(); }, containsItem: function (id) { if (this.items === undefined) { return false; } for (var i = 0; i < this.items.length; i++) { var _item = this.items[i]; if (id == _item.id) { return true; } } return false; }, updateItem: function (object) { for (var i = 0; i < this.items.length; i++) { var _item = this.items[i]; if (object.id === _item.id) { _item.count = parseInt(object.count) + parseInt(_item.count); _item.total = parseInt(object.total) +parseInt(_item.total); this.items[i] = _item; storage.saveCart(this.items); } } }
about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

Puede usar la función de filtro para eliminar un elemento, de esta manera solo eliminará el elemento que contiene una identificación específica.

 removeItem(id) { this.items = this.items.filter(item => item.id !== id); }

Para aplicar el cupón, a menos que tenga todos los cupones almacenados en su front-end, debe realizar una llamada HTTPS para verificar si el cupón es válido o no, pero también su valor para luego aplicar el descuento en el carrito.

Una sugerencia para su código está relacionada con la función containsItem, donde itera a través de toda la matriz y verifica cada ID de elemento individualmente, y luego regresa al usuario. Puede usar la función some para permitir que JS lo verifique por usted.

 containsItem: function (id) { return this.items?.some(item => item.id === id); } //PS: the ?. is a notion that checks if the variable exists and if it's true it continues, that way you won't have an undefined error. It is called [Optional Chaining][2]

Otra sugerencia está en updateItem, puede obtener el elemento que necesita con la función de búsqueda .

 updateItem: function (object) { const itemToUpdate = this.items.find(item => item.id === object.id); if(itemToUpdate) { itemToUpdate.count = parseInt(object.count) + parseInt(itemToUpdate.count); itemToUpdate.total = parseInt(object.total) +parseInt(itemToUpdate.total); storage.saveCart(this.items); } }

Además, no necesita reasignar la matriz, ya que cuando se refiera al objeto, también se actualizará en su origen.

about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda