Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

190
Vistas
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 Respuestas
Responde la pregunta

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 Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda