0Pricing
Swift Academy · Lección

Map, filter y reduce en arrays

Transforme arrays con funciones funcionales de orden superior.

Map, filter y reduce en arrays es una lección gratuita de Swift Academy en CoddyKit. Esta es la lección 3 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Swift Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Swift Academy incluye 4 lecciones en total.

Introducción

Las funciones de orden superior de Swift — `map`, `filter` y `reduce` — transforman colecciones sin modificarlas. Hacen explícitas sus intenciones y eliminan los bucles propensos a errores.

map — Transformar cada elemento

```swift let nums = [1, 2, 3, 4] let doubled = nums.map { $0 * 2 } // [2,4,6,8] let strings = nums.map { "Item \($0)" } // ["Item 1","Item 2",...] ``` `map` aplica un closure a cada elemento y devuelve un nuevo array con los resultados.

filter — Conservar elementos coincidentes

```swift let scores = [45, 80, 92, 37, 68] let passing = scores.filter { $0 >= 60 } // [80,92,68] let even = (1...10).filter { $0 % 2 == 0 } // [2,4,6,8,10] ``` `filter` devuelve un nuevo array que contiene únicamente los elementos para los que el closure devuelve `true`.

reduce — Combinar en un solo valor

```swift let nums = [1, 2, 3, 4, 5] let sum = nums.reduce(0) { $0 + $1 } // 15 let product = nums.reduce(1, *) // 120 let joined = ["a","b","c"].reduce("") { $0 + $1 } // "abc" ```

Encadenar map, filter y reduce

```swift let result = (1...10) .filter { $0 % 2 == 0 } // [2,4,6,8,10] .map { $0 * $0 } // [4,16,36,64,100] .reduce(0, +) // 220 ``` El encadenamiento se lee de izquierda a derecha y expresa claramente el flujo de datos.

compactMap — Transformar y desempaquetar

```swift let strings = ["1","two","3","four","5"] let nums = strings.compactMap { Int($0) } // [1,3,5] ``` `compactMap` transforma y elimina los resultados nil, por lo que es perfecto para conversiones que pueden fallar.

flatMap — Aplanar arrays anidados

```swift let nested = [[1,2,3],[4,5],[6]] let flat = nested.flatMap { $0 } // [1,2,3,4,5,6] let words = ["hello world","foo bar"] let all = words.flatMap { $0.split(separator: " ") } // ["hello","world","foo","bar"] ```

forEach — Solo efectos secundarios

```swift [1, 2, 3].forEach { print($0) } ``` `forEach` es como un bucle `for-in`, pero no permite usar `break` ni `continue`. Úselo solo cuando necesite efectos secundarios y no necesite salir antes.

reduce(into:) para diccionarios

```swift let words = ["apple","banana","apricot","blueberry"] let grouped = words.reduce(into: [Character:[String]]()) { dict, word in let key = word.first! dict[key, default: []].append(word) } // ["a":["apple","apricot"],"b":["banana","blueberry"]] ```

Encadenamientos lazy para mejorar el rendimiento

```swift let lazyResult = (1...1_000_000) .lazy .filter { $0 % 7 == 0 } .map { $0 * 2 } .prefix(5) // No intermediate arrays created! ``` Añada `.lazy` al principio de una cadena para evaluar bajo demanda.

Comprobación rápida

¿Qué función transforma cada elemento y elimina los resultados nil?

Resumen

Puntos clave: • `map`: transformar cada elemento en un nuevo array • `filter`: conservar los elementos que coinciden con un predicado • `reduce`: acumular en un único valor • `compactMap`: transformar y descartar los valores nil • `flatMap`: transformar y aplanar secuencias anidadas • Encadene con `.lazy` para evitar asignaciones intermedias A continuación: arrays bidimensionales y colecciones anidadas.

Preguntas frecuentes

¿La lección «Map, filter y reduce en arrays» es gratis?

Sí — el texto completo de «Map, filter y reduce en arrays» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Swift Academy, actualiza a CoddyKit PRO. El curso de Swift Academy incluye 4 lecciones en total.

¿Qué aprenderé en «Map, filter y reduce en arrays»?

Transforme arrays con funciones funcionales de orden superior. Practicas Swift Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.

¿Necesito experiencia previa para empezar Swift Academy?

No se requiere experiencia previa. Swift Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 3 de 4.

¿Cuánto tiempo toma la lección «Map, filter y reduce en arrays»?

La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.

¿Puedo escribir y ejecutar código en esta lección de Swift Academy?

Sí. Cada lección de Swift Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.

Todas las lecciones de este curso

  1. Creación y modificación de arrays
  2. Ordenación, búsqueda y slicing
  3. Map, filter y reduce en arrays
  4. Arrays bidimensionales y colecciones anidadas
← Volver a Swift Academy