Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/375.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_Mongodb_Express - Fatal编程技术网

Javascript按大小分组购物车对象

Javascript按大小分组购物车对象,javascript,mongodb,express,Javascript,Mongodb,Express,我有一个javascript函数,每当用户在UI端单击add to Cart并将对象保存到mongodb时,它就会创建一个Cart对象并添加项目 问题是,当用户为同一产品选择不同的尺寸时,这并不是按尺寸分组,而是将该项目视为相同的尺寸 this.add = function(item, id, quantity, size){ var storedItem = this.items[id]; if (!storedItem) { storedI

我有一个javascript函数,每当用户在UI端单击add to Cart并将对象保存到
mongodb
时,它就会创建一个Cart对象并添加项目

问题是,当用户为同一产品选择不同的尺寸时,这并不是按尺寸分组,而是将该项目视为相同的尺寸

this.add = function(item, id, quantity, size){
        var storedItem = this.items[id];

    if (!storedItem) {

            storedItem = this.items[id] = {item: item, title: '', qty: 0, price: 0, shipping: 0, fullAmount: 0, size: ''};

    }

    if (quantity == 1)
    {storedItem.qty++;}
    else
        storedItem.qty =  +quantity + +storedItem.qty;


    storedItem.size = size;
    storedItem.price = storedItem.item.price * storedItem.qty;
创建的对象:

Cart {
  items:
   { '57fc2234abc3707804ae3523':
      { item: [Object],
        title: '',
        qty: 3,
        price: 359.85,
        shipping: 25,
        fullAmount: 0,
        size: 'S' },     < ----   selected one small and 2 mediums 
     '57fc2234abc3707804ae3524':
      { item: [Object],
        title: '',
        qty: 1,
        price: 84.95,
        shipping: 25,
        fullAmount: 0,
        size: 'S' } }
Cart {
  items:
   {'57fc2234abc3707804ae3523':
      { item: [Object],
        title: 'Quartet Short',
        qty: 3,
        price: 359.85,
        shipping: 25,
        fullAmount: 0,
        size: 'S' },
      { item: [Object],
        title: 'Quartet Short',
        qty: 2,
        price: 359.85,
        shipping: 25,
        fullAmount: 0,
        size: 'M' }
   '57fc2234abc3707804ae3524':
      { item: [Object],
        title: 'Quartet Jersey',
        qty: 1,
        price: 84.95,
        shipping: 25,
        fullAmount: 0,
        size: 'S' } }

有没有一种简单的方法来解决这个问题,或者我必须以不同的方式处理cart对象模型

您是否对每个变体有不同的ID,而不是按项目ID对购物车项目进行索引?一个变体是不同的尺寸、颜色等。正如Rob所说,每个产品组合都应该有单独的SKU,因为它们都是独一无二的。然后,您可以使用您创建的SKU或人工SKU(例如,产品标题+选项)作为密钥。