entries
Emite los pares (clave, valor) de un Map como records: el punto de entrada para encadenar sobre un 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 sí 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 for — for (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».
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