entries

Emite los pares (clave, valor) de un Map como records: el punto de entrada para encadenar sobre un Map.

Iterable<(K, V)> entries<K, V>(Map<K, V> map)

Lección

Un Map de Dart no es un Iterable como sí lo es una List, así que no existe un fx(someMap) directo. entries es el puente: emite cada par clave/valor del map como un record (K, V), dándote un Iterable perezoso normal que puedes envolver con fx() y encadenar como cualquier otro. Esto refleja el entries de FxTS, que hace lo mismo con un objeto de JS.

Como los pares son records de Dart, puedes desestructurarlos directamente en un bucle forfor (final (key, value) in entries(map)) — o acceder a los campos posicionales .$1 (clave) y .$2 (valor) dentro de una callback de map/filter cuando desestructurar no resulte cómodo.

entries es perezoso como todo lo demás aquí, pero las entradas de un Map no son infinitas, así que rara vez hay motivo para acotarlo con take: se trata más de convertir un Map en algo encadenable que de controlar cuánto se llega a consumir.

Demo 1 · Fundamentos

Demo 2 · Encadenar sobre un Map

Envuelve entries(map) con fx() para filtrar y transformar el contenido de un Map:

Pruébalo tú

Ejercicio: convierte un Map de notas en cadenas «nombre: PASS/FAIL».

Relacionado: keys — solo las claves de un Map · values — solo los valores de un Map · fromEntries — la inversa: reconstruir un Map a partir de los pares · fx — la cadena a la que alimentan los resultados de entries