• flutter 数组筛查功能实现



    前言

    前一段时间,项目需要进行数组筛查工作,需要将一个大数组中的某些相同数据,筛查出来并分组,本篇文章将记录我的数据筛查文档


    一、使用 where 筛查数据

      List list = [
        {"name": "tiger", "age": 17, "addDate": DateTime.now()},
        {"name": "二妞", "age": 18, "addDate": DateTime.now()},
        {"name": "王麻子", "age": 19, "addDate": DateTime.now()},
        {"name": "老赵", "age": 18, "addDate": DateTime.now()},
        {"name": "阿雅", "age": 18, "addDate": DateTime.now()},
      ];
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    使用 where 进行数据筛查实现

      int selectAge = 18;
      var printList = list.where((element) => element["age"] == selectAge).toList();
      print(printList);
    
    • 1
    • 2
    • 3

    筛查结果输出
    在这里插入图片描述

    二、数组分组

    上面我们看了数组数据的筛查,当我们工作中,还需要将数据进行分组,并在分组之后进行数据展示,我们该怎么做呢?下面是我个人的一些做法。

    1. 定义一个数组,保存所有需要展示的标题字段
    //  保存提取出来的组头
      List ageList = [];
      for (var item in list) {
        ageList.add(item["age"]);
      }
      print(ageList);
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    1. 使用toSet() 函数去重标题重复数据,并转换成数组
     // 去除组头中的重复数据
      ageList = ageList.toSet().toList();
      print(ageList);
    
    • 1
    • 2
    • 3
    1. 定义一个最终使用的,分组之后用来保存数据的数组,然后遍历标题数组,取得每个标题的字段,使用 where 进行数组数据进行筛查工作,并将筛查之后的数组,add() 到分组数据的数组中
     // 循环遍历所有的表头年龄
      // 定义一个新的数组,存放分组之后的数据
      List groupList = [];
      for (var age in ageList) {
        // 筛查出每个年龄的数组
        var printList = list.where((element) => element["age"] == age).toList();
        // 将每组数据,分别放入分组数组中
        groupList.add({"headGroup": age, "list": printList});
      }
    
      print(groupList);
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    最终数据打印结果:

    在这里插入图片描述


    总结

    关于数组数据的排序、筛查、分组、等相关的知识点,我使用了两篇简短的文章,为大家呈现出来,并为自己做了一个简单的记录,如果你喜欢的话,点个赞呗

  • 相关阅读:
    字节一面:深拷贝浅拷贝的区别?如何实现一个深拷贝?
    dns服务解析流程
    ETCD基本原理
    2024携程校招面试真题汇总及其解答(一)
    贪心算法总结
    从小白到测试专家:掌握Pytest的实用技巧和优秀实践
    RabbitMQ消息积压比较厉害,然后突然丢弃
    【Java Web项目】基于WebSocket的Web聊天室
    Spring面试题
    基于 Alpine 环境构建 aspnetcore6-runtime 的 Docker 镜像
  • 原文地址:https://blog.csdn.net/u010755471/article/details/127962901