前一段时间,项目需要进行数组筛查工作,需要将一个大数组中的某些相同数据,筛查出来并分组,本篇文章将记录我的数据筛查文档
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);
筛查结果输出
上面我们看了数组数据的筛查,当我们工作中,还需要将数据进行分组,并在分组之后进行数据展示,我们该怎么做呢?下面是我个人的一些做法。
// 保存提取出来的组头
List ageList = [];
for (var item in list) {
ageList.add(item["age"]);
}
print(ageList);
// 去除组头中的重复数据
ageList = ageList.toSet().toList();
print(ageList);
// 循环遍历所有的表头年龄
// 定义一个新的数组,存放分组之后的数据
List groupList = [];
for (var age in ageList) {
// 筛查出每个年龄的数组
var printList = list.where((element) => element["age"] == age).toList();
// 将每组数据,分别放入分组数组中
groupList.add({"headGroup": age, "list": printList});
}
print(groupList);
最终数据打印结果:
关于数组数据的排序、筛查、分组、等相关的知识点,我使用了两篇简短的文章,为大家呈现出来,并为自己做了一个简单的记录,如果你喜欢的话,点个赞呗