Метод removeWhere
Метод removeWhere удаляет из Map все элементы,
для которых переданная функция-предикат возвращает
true. Сама Map при этом изменяется.
В параметр метода мы передаем функцию, которая
принимает ключ и значение текущего элемента, а возвращает
логическое значение: если функция вернет true,
элемент будет удален, если false - останется в Map.
Метод не возвращает значения, он просто изменяет исходную Map.
Синтаксис
map.removeWhere((key, value) => condition)
Пример
Давайте удалим из Map все элементы, значения
которых меньше 3:
void main()
{
Map<String, int> map = {
'a': 1,
'b': 2,
'c': 3,
'd': 4,
'e': 5
};
map.removeWhere((key, value) => value < 3);
print(map);
}
Результат выполнения кода:
{c: 3, d: 4, e: 5}
Пример
Давайте удалим из Map все элементы, ключи
которых начинаются с буквы 'a':
void main()
{
Map<String, int> map = {
'abcde': 1,
'abc': 2,
'ab': 3,
'bcd': 4,
'cde': 5
};
map.removeWhere((key, value) => key.startsWith('a'));
print(map);
}
Результат выполнения кода:
{bcd: 4, cde: 5}
Пример
Давайте удалим из Map все элементы, у которых
одновременно значение четное и ключ начинается
с буквы 'a':
void main()
{
Map<String, int> map = {
'abcde': 1,
'abc': 2,
'ab': 3,
'bcd': 4,
'cde': 6
};
map.removeWhere((key, value) =>
key.startsWith('a') && value % 2 == 0
);
print(map);
}
Результат выполнения кода:
{abcde: 1, ab: 3, bcd: 4, cde: 6}
Смотрите также
-
метод
remove,
который удаляет элемент по ключу -
метод
clear,
который удаляет все элементы Map -
метод
containsKey,
который проверяет наличие ключа -
метод
forEach,
который перебирает элементы Map