deepReverse method
Returns new instance of recursively reversed Map. It reverses nested List, Set or Map (primitive collections), nested primitive collections inside nested primitive collections and so on.
Implementation
Map<K, V> deepReverse() {
final reversedKeys = keys.toList(growable: false).deepReverse();
var reversedMap = LinkedHashMap.fromIterable(<K>[...reversedKeys],
key: (k) => k,
value: (k) {
if (this[k] is Map) {
return (this[k] as Map).deepReverse();
} else if (this[k] is Set) {
return (this[k] as Set).deepReverse();
} else if (this[k] is List) {
return (this[k] as List).deepReverse();
} else {
return this[k];
}
});
return reversedMap.cast<K, V>();
}