flatten method
Flattens nested maps to dot-notation keys.
{'a': {'b': {'c': 1}}}.flatten() // {'a.b.c': 1}
Implementation
Map<String, dynamic> flatten({String separator = '.'}) {
final result = <String, dynamic>{};
void flattenHelper(Map<dynamic, dynamic> map, String prefix) {
for (final e in map.entries) {
final key =
prefix.isEmpty ? e.key.toString() : '$prefix$separator${e.key}';
if (e.value is Map) {
flattenHelper(e.value as Map, key);
} else {
result[key] = e.value;
}
}
}
flattenHelper(this, '');
return result;
}