mapWithKeys<T, K, V> static method

Map<K, V> mapWithKeys<T, K, V>(
  1. Iterable<T> list,
  2. MapEntry<K, V> callback(
    1. T
    )
)

Maps each element of list to a MapEntry, returning the resulting map.

Arr.mapWithKeys(
  [{'id': 1, 'name': 'Anna'}, {'id': 2, 'name': 'Brad'}],
  (m) => MapEntry(m['id'], m['name']),
); // {1: 'Anna', 2: 'Brad'}

Implementation

static Map<K, V> mapWithKeys<T, K, V>(
  Iterable<T> list,
  MapEntry<K, V> Function(T) callback,
) {
  final result = <K, V>{};
  for (final v in list) {
    final entry = callback(v);
    result[entry.key] = entry.value;
  }
  return result;
}