• 小程序对现有数据进行分组


        var datalist = [{
          "name": '张三',
          "type": 1
        }, {
          "name": '张五',
          "type": 1
        }, {
          "name": '张六',
          "type": 2
        }, {
          "name": '张七',
          "type": 5
        }, {
          "name": '张八',
          "type": 0
        }]
      
       var resList =this.groupByList(datalist);
        //如果中间有相差的,则强制建数据
        console.log(resList);
        console.log(resList[0]);
        console.log(resList[3]);
        

    调用的函数

      //根据某个数字类型的字段对数组分组
      groupByList(datalist){
        let resList = [];//分组结果
        for (var i = 0; i < datalist.length; i++) {
          var thisindex = parseInt(datalist[i].type);//分组的索引 
          if (resList[thisindex] != undefined) {//如果数组中有值,则添加第二条数据
            resList[thisindex] = resList[thisindex].concat(datalist[i]);
          } else {//新建数组
            resList[thisindex] = [];
            resList[thisindex][0] = datalist[i];
          }
        }
        return resList
      },

    这个方法只能对数组类型的字段进行分组,对于文字暂时没考虑,可以根据需要自行调整

    思路是:先循环数组,然后第一次添加的数组加入值,然后第二次再次分入这个组里,进行插入的,最后取值

        这个操作类似于分页,只不过分页是直接相加,这个把数据过滤了然后再填入

    其他:

    如果对英文首字母排序

    var datalist = [{
                        "name": '张三',
                        "ename": "A"
                    }, {
                        "name": '张五',
                        "ename": "A"
                    }, {
                        "name": '张六',
                        "ename": "B"
                    }, {
                        "name": '张七',
                        "ename": "B"
                    }, {
                        "name": '张八',
                        "ename": "Q"
                    }]
    
                    var resList = this.groupByList(datalist);
                    //如果中间有相差的,则强制建数据
                    console.log(resList); 
    
    
    
            //根据某个数字类型的字段对数组分组
                groupByList(datalist) {
                    let resList = []; //分组结果
                    let resIndex = -1;
                    let lasetName = "";
                    for (var i = 0; i < datalist.length; i++) {
                        var ename = datalist[i].ename; //分组的索引
                        console.log(ename,lasetName)
                        if (lasetName == ename) { //如果数组中有值,则添加第二条数据
                            resList[resIndex] = resList[resIndex].concat(datalist[i]);
                        } else {
                            //新建数组
                            resIndex++; 
                            lasetName = ename;
                            resList[resIndex] = []; 
                            resList[resIndex][0] = datalist[i];
                        }
                    }
                    return resList
                },

    个人笔记,不当之处欢迎指正,转载请注明出处

  • 相关阅读:
    php基础:函数定义和时间戳函数
    php基础:函数
    http协议基础
    laravel基础②
    laravel基础①安装、配置虚拟主机
    composer
    git基础⑤远程仓库
    windows+caffe(一)——自己环境
    caffe问题集锦
    使用cygwin出现syntax error near unexpected token'$'do
  • 原文地址:https://www.cnblogs.com/hkzw/p/13598260.html
Copyright © 2020-2023  润新知