looking for some solutions? You are welcome.

SOLVED: JavaScript: how to remove a particular element from an array [duplicate]

Nauman Tanwir:

This question already has an answer here:

I am trying to create a shopping cart using vanilla javascript and OOJS concepts.

let inventory = [
    { item: "apples", price: 19.95, qty: 50 },
    { item: "oranges", price: 20.99, qty: 40 },
    { item: "pineapples", price: 40.0, qty: 60 },
    { item: "lemons", price: 10.12, qty: 100 }
  ];
  
  function MyBasket(inventory) {
    this.totalItems = [];
  }
  
  MyBasket.prototype.addItems = function(item, price, qty) {
    this.totalItems.push({ item: item, price: price, qty: qty });
  };

  MyBasket.prototype.removeItems = function(item, price, qty) {
    // write code here.
    this.inventory = this.inventory.filter(function(el) {
      if (
        el.item == item &&
        el.price == price &&
        el.qty == qty
      ) return false;
      return true;
    });
  };

  MyBasket.prototype.updateInventory = function() {
    cart.totalItems.forEach(i => {
      const item = inventory.find(o => o.item === i.item);
      if (item) item.qty -= i.qty;
    });
  }
  
  MyBasket.prototype.cartItems = function() {
    return this.totalItems;
  };
  
  MyBasket.prototype.totalAmount = function() {
    return this.totalItems.reduce((acc, item) => {
      return acc + item.price * item.qty;
    }, 0);
  };
  
  var cart = new MyBasket();
  
   cart.addItems("apples", 19, 2);
  

  cart.addItems("oranges", 20, 3);
  cart.addItems("lemons", 5, 4);
  cart.updateInventory();
  console.log("updated inventory", inventory);

  cart.removeItems('lemons',10.12,100);
  console.log("cart items", cart.cartItems());

  console.log("total Amount", cart.totalAmount());

  cart.updateInventory();
  console.log("updated inventory", inventory);

Above is the js code for the app. Later I will create the UI for it and use an eventListener that will call my parent Class MyBasket().

Problem 1). how do I remove a particular item from the cart? That item could be first, last or somewhere in the middle of the array.

Problem 2). how do I add item(s) from my inventory into the cart. Right now, I am randomly adding items. I have to use my inventory to carry out all the corresponding operations.

After this, I also will have to create child classes for each item in the inventory like appleMyBasket, lemonMyBasket etc and use that to add and remove that item in the cart



Posted in S.E.F
via StackOverflow & StackExchange Atomic Web Robots
Share:

No comments:

Recent