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);

最终数据打印结果:

在这里插入图片描述


总结

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

半身风雪

感谢打赏,你的鼓励,是我创作的

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值