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

一、加入购物车的时候判断是否已经存在该条数组,如果有,则将已存在数据数量加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); 
       },

猜你喜欢

转载自blog.csdn.net/huang_jimei/article/details/107463572