Sort Map<String, dynamic> in flutter dart 其中第一个键是字段名
Sort Map<String, dynamic> in flutter dart where the first key is the field name
我有一个包含在 firebase 中生成的字段的文档,字段名称是今天的日期,值是用户在应用程序中执行特殊操作时的使用增量。
当我从 firebase 检索数据时,我的 Map 统计信息;根据从 firebase 检索数据的方式,以随机顺序填充。
如何根据键值(字符串)对返回的数据进行排序,以便日期按升序排列?
我就是想不通。非常感谢任何提示指针。
var sortedKeys = map.keys.toList()..sort();
试试这个或使用下面的插件
sortedmap: ^0.5.1
进口'package:sortedmap/sortedmap.dart';
main() {
var map = new SortedMap(Ordering.byValue());
map.addAll({
"a": 3,
"b": 2,
"c": 4,
"d": 1
});
print(map.lastKeyBefore("c")); // a
print(map.firstKeyAfter("d")); // b
}
import 'package:sortedmap/sortedmap.dart';
main() {
var map = new FilteredMap(new Filter(
compare: (Pair a, Pair b)=>Comparable.compare(a.value, b.value),
isValid: (Pair v) => v.key!="b",
limit: 2));
map.addAll({
"a": 3,
"b": 2,
"c": 4,
"d": 1
});
print(map.keys); // (d, a)
}
它是 key:value
兄弟,它不存在 order 这样的东西,所以它 无法排序 。这是一个地图,只需调用键和它 return 值。
万一你真的想这样做。获取地图的 keys
并排序,使用排序键按顺序创建新地图。
void main() {
var map = {"b": {}, "d": {}, "a": {}, "h": {}, "f": {}, "c": {}};
var newmap = {};
var keys = [...map.keys]..sort((a, b) => a.compareTo(b));
for (String key in keys) {
newmap[key] = map[key];
}
print("oldmap: $map");
print("newmap: $newmap");
// result
// oldmap: {b: {}, d: {}, a: {}, h: {}, f: {}, c: {}}
// newmap: {a: {}, b: {}, c: {}, d: {}, f: {}, h: {}}
}
我有一个包含在 firebase 中生成的字段的文档,字段名称是今天的日期,值是用户在应用程序中执行特殊操作时的使用增量。
当我从 firebase 检索数据时,我的 Map
如何根据键值(字符串)对返回的数据进行排序,以便日期按升序排列?
我就是想不通。非常感谢任何提示指针。
var sortedKeys = map.keys.toList()..sort();
试试这个或使用下面的插件
sortedmap: ^0.5.1
进口'package:sortedmap/sortedmap.dart';
main() {
var map = new SortedMap(Ordering.byValue());
map.addAll({
"a": 3,
"b": 2,
"c": 4,
"d": 1
});
print(map.lastKeyBefore("c")); // a
print(map.firstKeyAfter("d")); // b
}
import 'package:sortedmap/sortedmap.dart';
main() {
var map = new FilteredMap(new Filter(
compare: (Pair a, Pair b)=>Comparable.compare(a.value, b.value),
isValid: (Pair v) => v.key!="b",
limit: 2));
map.addAll({
"a": 3,
"b": 2,
"c": 4,
"d": 1
});
print(map.keys); // (d, a)
}
它是 key:value
兄弟,它不存在 order 这样的东西,所以它 无法排序 。这是一个地图,只需调用键和它 return 值。
万一你真的想这样做。获取地图的 keys
并排序,使用排序键按顺序创建新地图。
void main() {
var map = {"b": {}, "d": {}, "a": {}, "h": {}, "f": {}, "c": {}};
var newmap = {};
var keys = [...map.keys]..sort((a, b) => a.compareTo(b));
for (String key in keys) {
newmap[key] = map[key];
}
print("oldmap: $map");
print("newmap: $newmap");
// result
// oldmap: {b: {}, d: {}, a: {}, h: {}, f: {}, c: {}}
// newmap: {a: {}, b: {}, c: {}, d: {}, f: {}, h: {}}
}