3.4Iteradores, agregadores y transformaciones
Lo esencial en 30 segundos
- El iterador despliega: recorre una lista y ejecuta las acciones siguientes para cada elemento (una fila por artículo).
- El agregador reúne: fusiona varios elementos en un solo valor (total, resumen, texto concatenado).
- Las transformaciones limpian: formatear una fecha, un texto o un importe para que el dato llegue limpio a la app destinataria.
Minicaso seguido — Lina consolida las líneas de pedido
Lina, encargada de digitalización en Orán, recibe pedidos cuya respuesta contiene varios artículos: su escenario solo tomaba el primero y olvidaba el resto. Añade un iterador que despliega la lista (una fila por artículo), unas transformaciones que limpian (fechas formateadas, importes redondeados, nombres en mayúsculas) y luego un agregador que produce el total y un resumen de texto enviado en un solo mensaje. Desplegar para tratar, reagrupar para restituir.
Este mismo caso vuelve en el curso, el esquema, el guion y el reto 48h.
1. Iterador y agregador: desplegar y luego reagrupar
Los datos reales suelen llegar en lotes: un pedido contiene varias líneas, un mensaje varios adjuntos, una respuesta de API una lista de elementos. El iterador «despliega» una lista y ejecuta las acciones para cada elemento (crear una fila por artículo pedido). El agregador hace lo contrario: reúne varios elementos en un solo valor (fusionar filas en un resumen, sumar, concatenar).
La señal que debe alertar: un dato «tabla/array» o un «[ … ]» en los resultados. Sin iterador, el escenario a menudo solo toma el primer elemento; con la pareja iterador → agregador, Lina trata cada artículo y luego restituye un resultado consolidado.
2. Las transformaciones: entregar limpio
Se añaden las transformaciones: limpiar y volver a dar formato a los datos al pasar — formatear una fecha, poner en mayúsculas, extraer una parte de texto, convertir un formato, calcular. Estas funciones, a menudo cercanas a una hoja de cálculo, garantizan que el dato llegue limpio y explotable a la aplicación destinataria.
Iteradores, agregadores y transformaciones son lo que permite tratar casos realistas (no solo un campo aislado) y, por tanto, construir automatizaciones robustas a la altura de los procesos de empresa.
🔎 Ejemplo concreto — Líneas de un pedido consolidadas
Lina aplica el patrón iterador → agregador.
Desencadenante devuelve una lista (artículos)
Iterador: crear una fila por artículo
Transformación: redondear, formatear las fechas
Agregador: total + resumen texto → un solo mensaje
Lectura: cada artículo se trata y luego todo se consolida.
Lección: un «[ … ]» en los datos = necesidad de iterar.
Vocabulario de la sección
- Iterador
- Módulo que recorre una lista y ejecuta las acciones siguientes para cada elemento (uno por uno).
Ejemplo sencillo: Lina crea una fila por artículo del pedido.
Lo que no es: un módulo que lo fusiona todo en un valor.
Reflejo: añadir un iterador en cuanto se vea un [ … ].
- Agregador
- Módulo que reúne varios elementos/resultados en un solo valor (fusión, suma, concatenación).
Ejemplo sencillo: El total y el resumen de texto de Lina en un mensaje.
Lo que no es: un recorrido elemento por elemento.
Reflejo: terminar con un agregador cuando se quiera un resultado único.
- Transformación
- Operación que vuelve a dar forma al dato al pasar (formatear una fecha, extraer texto, convertir, calcular).
Ejemplo sencillo: Fechas formateadas e importes redondeados antes del envío.
Lo que no es: el envío bruto de los datos de origen.
Reflejo: limpiar antes de la acción final, nunca después.
- Tabla (array)
- Lista de datos (líneas de un pedido, elementos de una respuesta de API) que el iterador despliega.
Ejemplo sencillo: La lista de artículos recibida en el pedido.
Lo que no es: un campo único aislado.
Reflejo: detectar los corchetes [ … ] en los resultados.
- Bundle / paquete
- Elemento individual producido en cada vuelta de iteración, sobre el que se aplican las acciones.
Ejemplo sencillo: Cada artículo tratado uno por uno por Lina.
Lo que no es: la lista entera tratada en bloque.
Reflejo: controlar un paquete de prueba antes de generalizar.
En la práctica — Tratar listas y transformar datos
- Parte de un desencadenante que devuelva una lista (p. ej. líneas de un pedido, o varios registros).
- Añade un iterador para recorrer la lista y crea una acción por elemento (una fila por artículo).
- Usa un agregador para producir un resumen (total, texto concatenado) a partir de esos elementos.
- Inserta transformaciones: formatea las fechas, limpia el texto, redondea los importes antes de la acción final.
Guion listo para decir — explicar el tratamiento por lotes (30 s)
«El pedido llega en lista: mi iterador despliega y crea una fila por artículo, mis transformaciones limpian fechas, textos e importes, y luego mi agregador produce el total y el resumen en un solo mensaje. Ya no se pierde ningún artículo y entregamos limpio.»
Para decir en revisión de equipo; mostrar un pedido de 3 artículos tratado de principio a fin.
Modelo copiar-pegar — ficha lote iterador → agregador
LISTA ORIGEN (campo tabla detectado) : _______________
ITERADOR (1 acción por elemento) : _______________
TRANSFORMACIONES (fechas / texto / importes) : _______________
AGREGADOR (total + resumen único) : _______________
TPE / autónomo
Incluso con poco volumen: iterar sobre los adjuntos uno por uno evita olvidos.
Pyme en Orán
Lina consolida los pedidos del día en un solo resumen enviado a contabilidad.
Equipo digital
Estandarizar los formatos (fechas, importes) en las transformaciones para unas bases siempre limpias.
Principiante
Practicar con una lista de 3 artículos: iterar, transformar un campo, agregar un total.
✓ Buenas prácticas
- Iterar en cuanto un dato llegue en lista (array).
- Combinar iterador → agregador para consolidar un resultado.
- Limpiar/formatear los datos antes de la acción final.
✗ Errores frecuentes
- Tratar una lista como un bloque (tomar solo el 1.er elemento).
- Olvidar formatear (fechas, texto) antes de la acción destinataria.
- Iterar cuando cada ejecución solo afecta a un objeto (inútil).
Puntos clave
- El iterador despliega una lista y ejecuta las acciones para cada elemento.
- El agregador reúne varios elementos en un solo valor (fusión, suma, concatenación).
- Las transformaciones vuelven a dar forma al dato (fechas, texto, conversiones, cálculos).
- Estos módulos permiten tratar casos realistas (listas, lotes) y no un campo aislado.
Reto 48h — aplica mañana
Detecta 1 lista en tus datos y añade un iterador + 1 transformación (fecha o importe).
- Detecto una tabla [ … ] en los resultados.
- Sé iterar y luego agregar un resultado.
- Limpio fechas e importes antes de la acción final.
Preguntas frecuentes
¿Cuándo necesito de verdad un iterador?
En cuanto el desencadenante (o un paso) devuelva varios elementos y quieras actuar sobre cada uno: varios artículos en un pedido (crear una fila por artículo), varios adjuntos (guardarlos uno a uno), una lista de registros que tratar. Sin iterador, el escenario a menudo solo tomaría el primer elemento, o trataría la lista como un bloque informe. La señal que debe alertar: ves un dato «tabla/array» o un «[ … ]» en los resultados. Es el momento de iterar. Al contrario, si cada ejecución solo afecta a un objeto, el iterador es inútil.
Iterador y luego agregador: ¿para qué sirve esta combinación?
Es un patrón muy habitual: se despliega una lista para tratar/transformar cada elemento (iterador) y luego se reúnen los resultados en una salida única (agregador). Ejemplo: a partir de las líneas de un pedido, se calcula el subtotal de cada una (iteración) y luego se suman y se genera un resumen de texto (agregación) para enviar por mensaje. «Desplegar para tratar, reagrupar para restituir»: esta pareja iterador → agregador es uno de los esquemas más potentes para gestionar limpiamente datos por lotes, produciendo a la vez un resultado consolidado y legible.
¿Para qué sirve un iterador?