Menu
Coddy logo textTech

Slicing de Arrays Parte 1

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

A veces no necesitas un array completo, solo una parte de él. Swift facilita la extracción de un subconjunto de elementos utilizando la segmentación de arrays (array slicing) con operadores de rango.

Para obtener un segmento (slice), se utiliza un rango dentro de los corchetes de subíndice. El enfoque más común utiliza el operador de rango semiabierto (..<), que incluye el índice inicial pero excluye el índice final:

let numbers = [10, 20, 30, 40, 50]
let slice = numbers[1..<4]
print(slice)  // [20, 30, 40]

Aquí, 1..<4 nos da los elementos en los índices 1, 2 y 3—pero no el índice 4. Esto es útil cuando sabes exactamente dónde quieres detenerte.

Si quieres incluir el índice final, usa el operador de rango cerrado (...):

let letters = ["a", "b", "c", "d", "e"]
let slice = letters[1...3]
print(slice)  // ["b", "c", "d"]

Un detalle importante: el resultado de segmentar es un ArraySlice, no un Array normal. Si necesitas un array real, envuélvelo con Array():

let original = [1, 2, 3, 4, 5]
let sliced = Array(original[0..<3])
print(sliced)  // [1, 2, 3]
challenge icon

Desafío

Fácil

Escribe una función getMiddleElements que reciba numbers, start y end y devuelva una porción del arreglo desde el índice inicial hasta (pero sin incluir) el índice final.

Usa el operador de rango semiabierto (..<) para extraer la porción especificada del arreglo y devolverla como un arreglo normal.

Parámetros:

  • numbers ([Int]): El arreglo a segmentar
  • start (Int): El índice inicial (inclusive)
  • end (Int): El índice final (exclusivo)

Devuelve: Un arreglo que contiene los elementos desde el índice inicial hasta (pero sin incluir) el índice final ([Int])

Ejemplo: Si numbers es [10, 20, 30, 40, 50, 60], start es 1 y end es 4, la función debería devolver [20, 30, 40].

Hoja de referencia

Swift te permite extraer una porción de un array utilizando el segmentado de arrays (array slicing) con operadores de rango.

Utiliza el operador de rango semiabierto (..<) para segmentar desde un índice inicial hasta (pero sin incluir) un índice final:

let numbers = [10, 20, 30, 40, 50]
let slice = numbers[1..<4]
print(slice)  // [20, 30, 40]

Utiliza el operador de rango cerrado (...) para incluir el índice final:

let letters = ["a", "b", "c", "d", "e"]
let slice = letters[1...3]
print(slice)  // ["b", "c", "d"]

El segmentado de arrays devuelve un ArraySlice. Para convertirlo en un Array normal, envuélvelo con Array():

let original = [1, 2, 3, 4, 5]
let sliced = Array(original[0..<3])
print(sliced)  // [1, 2, 3]

Pruébalo tú mismo

func getMiddleElements(numbers: [Int], start: Int, end: Int) -> [Int] {
    // 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