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()},
  ];

使用 where 进行数据筛查实现

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

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

二、数组分组

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

  1. 定义一个数组,保存所有需要展示的标题字段
//  保存提取出来的组头
  List ageList = [];
  for (var item in list) {
    
    
    ageList.add(item["age"]);
  }
  print(ageList);
  1. 使用toSet() 函数去重标题重复数据,并转换成数组
 // 去除组头中的重复数据
  ageList = ageList.toSet().toList();
  print(ageList);
  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);

最终数据打印结果:

在这里插入图片描述


总结

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

猜你喜欢

转载自blog.csdn.net/u010755471/article/details/127962901