Метод map
Метод map класса Map преобразует каждый элемент словаря
с помощью переданной функции и возвращает новый словарь с
преобразованными значениями. Исходный словарь при этом не изменяется.
В первый параметр мы передаем функцию, которая принимает ключ и значение
текущего элемента и возвращает объект класса MapEntry с новым
ключом и новым значением. Метод возвращает новый словарь типа Map,
содержащий все преобразованные элементы исходного словаря.
Синтаксис
map.map((K key, V value) => MapEntry(newKey, newValue))
Пример
Давайте умножим каждое значение словаря на 2
и получим новый словарь:
void main()
{
Map<String, int> map = {'a': 1, 'b': 2, 'c': 3};
Map<String, int> res = map.map((key, value) => MapEntry(key, value * 2));
print(res);
}
Результат выполнения кода:
{a: 2, b: 4, c: 6}
Пример
Давайте преобразуем ключи словаря, добавив к каждому из них символ подчеркивания:
void main()
{
Map<String, int> map = {'a': 1, 'b': 2, 'c': 3};
Map<String, int> res = map.map((key, value) => MapEntry(key + '_', value));
print(res);
}
Результат выполнения кода:
{a_: 1, b_: 2, c_: 3}
Пример
Давайте преобразуем и ключи, и значения словаря, сформировав новый словарь с другим типом данных:
void main()
{
Map<String, int> map = {'a': 1, 'b': 2, 'c': 3};
Map<String, String> res = map.map((key, value) => MapEntry(key.toUpperCase(), 'value_' + value.toString()));
print(res);
}
Результат выполнения кода:
{A: value_1, B: value_2, C: value_3}