zoukankan      html  css  js  c++  java
  • 自己写的数组 方法的组合使用

    //注意,使用map返回的新数组的长度,和原数组的长度是一致的,,  可以结合filter先筛选出来符合条件的,然后在使用map来返回需要的数据,        
     
    //用map 循环数组,然后,找到每一向的,数组,再用map循环,拿到二次循环的数组元素,然后以对象的形式取出里边需要的东西,并且返回,因为map返回的
      是数组,所以在最后用了flat()来展开数组,让数组元素全都是对象,最后使用,reduce去重复
            var obj = {};//用来去重
            let activeListArray1=cart_goods_list.map((item,index,arr)=>{
              return item.promotion.map((item1)=>{
                    return {"promot_id":item1.promot_id,"promot_name":item1.promot_name,"type":"promotion"}
              })
            }).flat().reduce(function(item,next){
              obj[next.promot_id] ? "" : obj[next.promot_id] = true && item.push(next);
              return item
            },[]);
            console.log(activeListArray1)
            //获取购物车商品每个商品的单品促销活动名称 并且去重
      //先使用filter选出原数组中符合条件的元素,返回符合条件的数组,然后使用map循环符合条件的数组,符合条件数组的元素里又有数组,所以内部又使用
      map来循环里边的数组,然后取出里边要的信息,返回
            var obj2 = {};
            let activeArray2 = cart_goods_list.filter(item=>item.activity.length>0).map((item,index,arr)=>{
              return item.activity.map((item2,index2,arr2)=>{
                return {"promot_id":item2.activity_id,"promot_name":item2.activity_name,"type":"activity"}
              })
            }).flat().reduce(function(item,next){
              obj[next.promot_id] ? "" : obj[next.promot_id] = true && item.push(next);
              return item
            },[]);
            console.log(activeArray2);
            // 合并两个活动的名称
            activeListArray1 = [...activeListArray1,...activeArray2,...[{"promot_id":0,"promot_name":"暂无活动"}]];
            console.log(activeListArray1);
            // 遍历商品,分类放
      这里使用forEach来循环,所有活动的数组,在循环里,使用filter来过滤,商品列表里,和,活动ID一致的商品,然后使用,forEach
      的参数,把filter返回的数组,添加到自己的每个对象的数组中
            activeListArray1.forEach(function(item,index,arr){
              // arr[index].productList = cart_goods_list.filter(item1=>item1.promotion.length>0?item1.promotion[0].promot_id==arr[index].promot_id:null);
              arr[index].productList = cart_goods_list.filter(item1=>{
                if(item1.promotion.length>0){return item1.promotion[0].promot_id==arr[index].promot_id}else if(item1.promotion.length==0&&item1.activity.length>0)
                {return item1.activity[0].activity_id==arr[index].promot_id}else{
                  return item1.promotion.length==arr[index].promot_id&&item1.activity.length==arr[index].promot_id}
              });         
            });
            console.log(activeListArray1);
            that.setData({
            activeListArray1
            }) 
  • 相关阅读:
    C#开发微信门户及应用(18)-微信企业号的通讯录管理开发之成员管理
    C#开发微信门户及应用(17)-微信企业号的通讯录管理开发之部门管理
    C#开发微信门户及应用(16)-微信企业号的配置和使用
    C#开发微信门户及应用(15)-微信菜单增加扫一扫、发图片、发地理位置功能
    会员管理系统的设计和开发(3)--主界面的设计思路分享
    会员管理系统的设计和开发(2)-- RDLC报表的设计及动态加载
    Winform开发中常见界面的DevExpress处理操作
    在WCF数据访问中使用缓存提高Winform字段中文显示速度
    双指针算法模板和一些题目
    尾递归 递归函数中,递归调用是整个函数体中最后的语句,且它的返回值不属于表达式的一部分时,这个递归调用就是尾递归,空间复杂度是O(1)
  • 原文地址:https://www.cnblogs.com/zzhqdkf/p/12793570.html
Copyright © 2011-2022 走看看