Flutter / Dart如何分组按地图列表 [英] Flutter/Dart how to groupBy list of maps
本文介绍了Flutter / Dart如何分组按地图列表的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有此地图列表。
[
{title: 'Avengers', release_date: '10/01/2019'},
{title: 'Creed', release_date: '10/01/2019'}
{title: 'Jumanji', release_date: '30/10/2019'},
]
我想编写一个将电影列表按 release_date
。
I would like to write a code that would group the list of movies by release_date
like that.
[
{
"10/01/2019": [
{
"title": "Avengers"
},
{
"title": "Creed"
}
]
},
{
"30/10/2019": [
{
"title": "Jumanji"
}
]
}
]
推荐答案
包收藏实现了
和 groupBy
函数。
按日期分组:
import "package:collection/collection.dart";
main(List<String> args) {
var data = [
{"title": 'Avengers', "release_date": '10/01/2019'},
{"title": 'Creed', "release_date": '10/01/2019'},
{"title": 'Jumanji', "release_date": '30/10/2019'},
];
var newMap = groupBy(data, (obj) => obj['release_date']);
print(newMap);
}
用于删除 release_date
每个映射项中的键:
For removing the release_date
key from each map entry:
var newMap = groupBy(data, (obj) => obj['release_date']).map(
(k, v) => MapEntry(k, v.map((item) { item.remove('release_date'); return item;}).toList()));
更改键:
var newMap = groupBy(data, (obj) => obj['release_date']).map(
(k, v) => MapEntry(k, v.map((item) => {'name': item['title']}).toList()));
这篇关于Flutter / Dart如何分组按地图列表的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文