小程序--合并同类型的数据,并计数

一、加入购物车的时候判断是否已经存在该条数组,如果有,则将已存在数据数量加1,不存在就连接两个数组,加入到已有数组列表

/* 加入购物车 */  
addCart:function(e){    
var that=this;    
var index = e.currentTarget.dataset.index; //数量    
//新定义一个数组用来装新添加入购物车的数据    
var newarray = [{      
orderDFoodName: this.data.addname,      
orderDFoodPrice: this.data.addprice,      
orderDNumber: this.data.num,      
orderDTaste: this.data.kouwei,      
orderDFoodGuid:this.data.foodid,      //orderDOrderGuid:this.data.comid    
}];    
//var i=0;    
//合并相同id和口味的数据 循环比较id和口味    
console.log('购物车列表长度',this.data.orderList.length);
if(this.data.orderList.length==0){      
console.log('第一个添加的');      
this.setData({        
orderList: newarray.concat(this.data.orderList)      
})   
 }else{      
 var listcon=[];    
 for(var i=0;i<this.data.orderList.length;i++){              
 var foodnum=this.data.orderList[i].orderDFoodGuid;          
 var ftast=this.data.orderList[i].orderDTaste;          console.log('套餐id',i,foodnum);          
 console.log('口味',i,ftast);          
 var newid=this.data.foodid;          
 var newtast=this.data.kouwei;          
 console.log('新数组id',newid);          
 console.log('新数组口味',newtast);         
  if(foodnum==newid && ftast==newtast){                
  var sum=this.data.orderList[i].orderDNumber;                   
  sum=sum+index;                
  console.log('数量',sum);
  this.data.orderList[i].orderDNumber=sum;                
  newarray=[];//合并后清空新数组          
  }else{            
  console.log('不一样的时候不清空newarry');         
   }            
    }        
    this.setData({          
    orderList: newarray.concat(this.data.orderList),
    //合并到购物车列表        
    })    
    }         
    this.setData({       
    HZL_num: parseFloat((this.data.HZL_num+this.data.num).toFixed(0)),
     //购物车总数       
     //orderList: newarray.concat(this.data.orderList),
     //合并到购物车列表       
     showModalStatus: !this.data.showModalStatus, //点击加入购物车。关闭弹出框      
     //total: 
     this.data.total+this.data.num*this.data.options[index].price //计算总价格      
      total:parseFloat((this.data.total + index * 
      this.data.addprice).toFixed(2)),       
      'HZL_my_cat.price': this.data.addprice,        
      'HZL_my_cat.num': this.data.num,       
      'HZL_my_cat.name': this.data.addname
      
     })   
      console.log(this.data.orderList); 
       },
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值