En Dart, los métodos map
y fold
permiten transformar y reducir colecciones de forma eficiente. Estos métodos facilitan el trabajo con listas y otros tipos de colecciones al aplicar funciones específicas a cada elemento y condensar los resultados en un solo valor.
map
en Dart?
El método map
transforma cada elemento de una colección según una función proporcionada y devuelve una nueva colección con los elementos modificados. map
es útil para convertir datos sin modificar la colección original.
map
En el siguiente ejemplo, se usa map
para multiplicar cada elemento de una lista por 2:
void main() {
var numeros = [1, 2, 3, 4];
var numerosDuplicados = numeros.map((numero) => numero * 2).toList();
print(numerosDuplicados); // Salida: [2, 4, 6, 8]
}
En este caso, map
aplica la función (numero) => numero * 2
a cada elemento de numeros
, generando una nueva lista numerosDuplicados
con los valores transformados.
fold
en Dart?
El método fold
reduce una colección a un solo valor acumulando sus elementos de acuerdo con una función específica. fold
requiere un valor inicial y una función que combine el valor acumulado con cada elemento de la colección.
fold
En el siguiente ejemplo, se utiliza fold
para calcular la suma de todos los elementos de una lista:
void main() {
var numeros = [1, 2, 3, 4];
var suma = numeros.fold(0, (acumulador, numero) => acumulador + numero);
print(suma); // Salida: 10
}
Aquí, fold
comienza con 0
como valor inicial y luego acumula cada elemento de la lista numeros
, sumándolos para obtener un resultado final de 10
.
map
y fold
Los métodos map
y fold
se pueden combinar para realizar transformaciones y luego acumular los resultados en una sola operación.
map
y fold
combinados
En este ejemplo, se transforma cada elemento para duplicar su valor y luego se suman los resultados:
void main() {
var numeros = [1, 2, 3, 4];
var sumaDuplicados = numeros.map((numero) => numero * 2).fold(0, (acumulador, numero) => acumulador + numero);
print(sumaDuplicados); // Salida: 20
}
Aquí, cada elemento se duplica primero con map
, y luego fold
acumula los valores en una suma total.
Para más información sobre el uso de map
y fold
en Dart, consulta la documentación oficial de Dart.
Jorge García
Fullstack developer