removeWhere method
Removes all entries of this map that satisfy the given test.
final terrestrial = <int, String>{1: 'Mercury', 2: 'Venus', 3: 'Earth'};
terrestrial.removeWhere((key, value) => value.startsWith('E'));
print(terrestrial); // {1: Mercury, 2: Venus}
Implementation
@override
void removeWhere(bool Function(K key, V value) test) {
var del = <_EntryRef<K, V>>[];
for (var k in _map.keys) {
var target = k.target;
if (target == null) {
del.add(k);
} else {
var payload = k.payload;
if (payload == null || test(target, payload)) {
del.add(k);
}
}
}
for (var k in del) {
_map.remove(k);
_onRemoveEntry(k);
}
}