select<K, V> static method

List<Map<K, V>> select<K, V>(
  1. Iterable<Map<K, V>> list,
  2. Iterable<K> keys
)

Returns each map in list reduced to only the given keys.

Arr.select([
  {'name': 'Anna', 'role': 'admin', 'age': 30},
  {'name': 'Brad', 'role': 'user', 'age': 25},
], ['name', 'role']);
// [{'name': 'Anna', 'role': 'admin'}, {'name': 'Brad', 'role': 'user'}]

Implementation

static List<Map<K, V>> select<K, V>(
  Iterable<Map<K, V>> list,
  Iterable<K> keys,
) {
  final keySet = keys.toSet();
  return [
    for (final m in list)
      {
        for (final e in m.entries)
          if (keySet.contains(e.key)) e.key: e.value,
      },
  ];
}