Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/475.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 订单确认时,如何从订单数量中减去可用数量?_Javascript_Firebase_Vue.js_Google Cloud Firestore - Fatal编程技术网

Javascript 订单确认时,如何从订单数量中减去可用数量?

Javascript 订单确认时,如何从订单数量中减去可用数量?,javascript,firebase,vue.js,google-cloud-firestore,Javascript,Firebase,Vue.js,Google Cloud Firestore,首先,我不是真的喜欢硬编码,我真的试图寻找解决我问题的方法,但我没有得到一些解释 我的购物车中有三个数据产品,即产品详细信息和从firestore订购的数据。我需要从购物车数据中的产品中的产品详细信息中减少可用数量,并更新firestore中的可用数量 购物车中的产品数据: var Cart= [{ ProdName : "Smartphone", ProdID : "0n7TZQrgpbfs8hPDKc7n", ProductQuanti

首先,我不是真的喜欢硬编码,我真的试图寻找解决我问题的方法,但我没有得到一些解释

我的购物车中有三个数据产品,即产品详细信息和从firestore订购的数据。我需要从购物车数据中的产品中的产品详细信息中减少可用数量,并更新firestore中的可用数量

购物车中的产品数据:

var  Cart= [{
  ProdName : "Smartphone",
  ProdID  : "0n7TZQrgpbfs8hPDKc7n",
  ProductQuantity : 2,
  ProductPrice  : 1500
},{
  ProdName : "Charger",
  ProdID  : "11VOxRvH2dc8cxyR4AYG",
  ProductQuantity : 1,
  ProductPrice  : 600
}];
产品详细信息数据

  var  Products= [{
      Name : "Smartphone",
      ID  : "0n7TZQrgpbfs8hPDKc7n",
      AvailableQuantity : 100,
      Price  : 1500,
      Category : "Tech"
    },{
      Name : "Charger",
      ID  : "11VOxRvH2dc8cxyR4AYG",
      AvailableQuantity : 150,
      Price  : 600,
      Category : "Tech"
    }];
  var  Order= {
      UserName : "Rakesh",
      UserID  : "CcojGJPh3mIyoCZmParw",
      OrderID :"H2Fbh3jTQ2XL7B9ttXBz",
      UserPhone : 9840184150,
      PlacedDate: "date",
      ProductsPlaced : [
       {
        ProdName : "Smartphone",
        ProdID  : "0n7TZQrgpbfs8hPDKc7n",
        ProductQuantity : 2,
        ProductPrice  : 1500
        },{
        ProdName : "Charger",
        ProdID  : "11VOxRvH2dc8cxyR4AYG",
        ProductQuantity : 1,
        ProductPrice  : 600
        }
      ]
        };
下订单数据

  var  Products= [{
      Name : "Smartphone",
      ID  : "0n7TZQrgpbfs8hPDKc7n",
      AvailableQuantity : 100,
      Price  : 1500,
      Category : "Tech"
    },{
      Name : "Charger",
      ID  : "11VOxRvH2dc8cxyR4AYG",
      AvailableQuantity : 150,
      Price  : 600,
      Category : "Tech"
    }];
  var  Order= {
      UserName : "Rakesh",
      UserID  : "CcojGJPh3mIyoCZmParw",
      OrderID :"H2Fbh3jTQ2XL7B9ttXBz",
      UserPhone : 9840184150,
      PlacedDate: "date",
      ProductsPlaced : [
       {
        ProdName : "Smartphone",
        ProdID  : "0n7TZQrgpbfs8hPDKc7n",
        ProductQuantity : 2,
        ProductPrice  : 1500
        },{
        ProdName : "Charger",
        ProdID  : "11VOxRvH2dc8cxyR4AYG",
        ProductQuantity : 1,
        ProductPrice  : 600
        }
      ]
        };

退房后,您会希望:

Order.ProductsPlaced.forEach( i => { 
  console.log(i); 
  var _idx = Products.findIndex( p => p.ID === i.ProdID); 
  if (_idx < 0) {
    console.log("Index Not Found"); 
    return; 
  } 
  Products[_idx].AvailableQuantity =  Products[_idx].AvailableQuantity - i.ProductQuantity;
});
Order.ProductsPlaced.forEach(i=>{
控制台日志(i);
var_idx=Products.findIndex(p=>p.ID==i.ProdID);
如果(_idx<0){
console.log(“未找到索引”);
返回;
} 
Products[\u idx].AvailableEquantity=Products[\u idx].AvailableEquantity-i.ProductQuantity;
});

由于您的操作方式,您需要查找产品ID以找到正确的产品,然后执行减法。这对于您放入购物车的物品没有逻辑,但可用物品少于所需物品。所以要考虑到这一点。

请添加一些您尝试过但不适用于您的代码,以便我们可以尝试帮助您。