Menu
Coddy logo textTech

El método enumerate

Parte de la sección Fundamentos del Journey de Swift de Coddy — lección 70 de 86.

A veces, al iterar sobre un array, necesitas conocer no solo el elemento, sino también su posición. Aunque podrías rastrear manualmente el índice con una variable contador, Swift ofrece una solución más limpia: el método enumerated().

Cuando llamas a enumerated() en un arreglo, devuelve una secuencia de tuplas, donde cada tupla contiene el índice y el elemento:

let colors = ["Red", "Green", "Blue"]

for (index, color) in colors.enumerated() {
    print("\(index): \(color)")
}
// 0: Red
// 1: Green
// 2: Blue

Observa cómo descomponemos cada tupla directamente en el bucle usando (index, color). Esto nos da acceso a ambos valores sin necesidad de código adicional.

Esto es particularmente útil cuando necesitas mostrar listas numeradas o realizar operaciones que dependen de la posición de un elemento:

let tasks = ["Wake up", "Exercise", "Eat breakfast"]

for (index, task) in tasks.enumerated() {
    print("Task \(index + 1): \(task)")
}
// Tarea 1: Wake up
// Tarea 2: Exercise
// Tarea 3: Eat breakfast

El método enumerated() mantiene tu código limpio y legible en comparación con gestionar manualmente una variable de contador separada.

challenge icon

Desafío

Fácil

Escribe una función formatWithPositions que reciba items y devuelva una cadena con formato que muestre cada elemento con su número de posición.

Usa el método enumerated() para iterar a través del arreglo y construir una cadena donde cada elemento esté precedido por su número de posición basado en 1.

Lógica:

  1. Itera a través del arreglo usando enumerated()
  2. Para cada elemento, crea una cadena con el formato "position. item" (usando numeración basada en 1)
  3. Une todas las cadenas formateadas con un carácter de nueva línea (\n)

Parámetros:

  • items ([String]): Un arreglo de cadenas para formatear

Devuelve: Una sola cadena con cada elemento en su propia línea, precedido por su número de posición (String). Formato: "1. item1\n2. item2\n3. item3"

Ejemplo: Si items es ["Apple", "Banana", "Cherry"], la función debería devolver:

"1. Apple\n2. Banana\n3. Cherry"

Nota: Si el arreglo está vacío, devuelve una cadena vacía "".

Hoja de referencia

El método enumerated() devuelve una secuencia de tuplas que contienen tanto el índice como el elemento de un arreglo:

let colors = ["Red", "Green", "Blue"]

for (index, color) in colors.enumerated() {
    print("\(index): \(color)")
}
// 0: Red
// 1: Green
// 2: Blue

Cada tupla se descompone directamente en el bucle utilizando la sintaxis (index, element), proporcionando acceso tanto a la posición como al valor.

Esto es útil para crear listas numeradas sumando 1 al índice basado en cero:

let tasks = ["Wake up", "Exercise", "Eat breakfast"]

for (index, task) in tasks.enumerated() {
    print("Task \(index + 1): \(task)")
}
// Task 1: Wake up
// Task 2: Exercise
// Task 3: Eat breakfast

Pruébalo tú mismo

func formatWithPositions(items: [String]) -> String {
    // Escribe el código aquí
}
quiz iconPonte a prueba

Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.

Todas las lecciones de Fundamentos