Slicing de Arrays con Índices
Parte de la sección Fundamentos del Journey de Ruby de Coddy — lección 70 de 88.
Ruby ofrece otra forma de segmentar arreglos utilizando un índice de inicio y una longitud. En lugar de especificar un rango, proporcionas dos números: dónde empezar y cuántos elementos extraer.
La sintaxis utiliza una coma para separar el índice de inicio de la cantidad:
numbers = [10, 20, 30, 40, 50]
slice = numbers[1, 3]
puts slice # Salida: 20, 30, 40Esto extrae 3 elementos comenzando desde el índice 1. El primer número es la posición inicial, y el segundo es cuántos elementos deseas.
Este enfoque es especialmente útil cuando sabes exactamente cuántos elementos necesitas:
letters = ["a", "b", "c", "d", "e"]
first_two = letters[0, 2]
puts first_two # Salida: a, bLos índices negativos también funcionan aquí. Puedes empezar desde el final del array:
colors = ["red", "green", "blue", "yellow"]
last_two = colors[-2, 2]
puts last_two # Salida: blue, yellowSi solicitas más elementos de los que están disponibles, Ruby simplemente devuelve lo que existe sin generar un error:
nums = [1, 2, 3]
slice = nums[1, 10]
puts slice # Salida: 2, 3Elija este método cuando conozca la cantidad de elementos necesarios y utilice rangos cuando conozca las posiciones exactas.
Desafío
FácilLee tres entradas:
- Una sola línea de enteros separados por comas (por ejemplo,
5,10,15,20,25,30,35,40) - Un índice de inicio (entero)
- El número de elementos a extraer (entero)
Divide la primera entrada en un arreglo de enteros. Utiliza el índice de inicio y la cantidad para segmentar el arreglo usando la sintaxis de índice y longitud, luego imprime cada elemento de la parte segmentada en su propia línea.
Por ejemplo, si las entradas son 5,10,15,20,25,30,35,40, 2 y 4, la salida debería ser:
15
20
25
30Si las entradas son 100,200,300,400,500, 0 y 2, la salida debería ser:
100
200Si las entradas son a,b,c,d,e,f,g, -3 y 2, la salida debería ser:
e
fSi las entradas son 10,20,30, 1 y 10, la salida debería ser:
20
30Hoja de referencia
Ruby permite segmentar (slicing) arreglos usando un índice de inicio y una longitud. La sintaxis utiliza una coma para separar el índice de inicio de la cantidad:
array[start_index, length]Ejemplo básico:
numbers = [10, 20, 30, 40, 50]
slice = numbers[1, 3]
puts slice # Salida: 20, 30, 40El primer número es la posición inicial y el segundo es cuántos elementos extraer.
Los índices negativos funcionan con esta sintaxis, permitiéndote comenzar desde el final del arreglo:
colors = ["red", "green", "blue", "yellow"]
last_two = colors[-2, 2]
puts last_two # Salida: blue, yellowSi solicitas más elementos de los disponibles, Ruby devuelve lo que existe sin generar un error:
nums = [1, 2, 3]
slice = nums[1, 10]
puts slice # Salida: 2, 3Pruébalo tú mismo
# Leer entradas
input_line = gets.chomp
start_index = gets.chomp.to_i
count = gets.chomp.to_i
# Dividir la entrada en un arreglo
arr = input_line.split(',')
# TODO: Escribe tu código a continuación para segmentar el arreglo usando la sintaxis de índice y longitud
# e imprimir cada elemento en su propia líneaEsta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.
Todas las lecciones de Fundamentos
4Operadores Parte 2
Operadores lógicos Parte 1Operadores lógicos Parte 2Repaso - Lógica simpleOperadores lógicos Parte 3Operadores lógicos Parte 47Calculadora para dividir la cuenta
Mensaje de bienvenidaObtener la entrada del usuario10FizzBuzz con un giro
Descripción general del juegoEl método FizzBuzz13Arrays Avanzados
Slicing de Arrays con RangosSlicing de Arrays con ÍndicesOperadores de ArraysMétodo Include?2Variables y tipos de datos
Números y variablesTipo de dato StringTipo de dato BooleanTipo de dato SymbolComprobación de tipos de datosConvenciones de nomenclaturaResumen: Creación de variables5Toma de decisiones
Sentencia IfIf - ElseRepaso - Calculadora simpleIf - Else anidadosSentencia Unless8Bucles
Bucle For con rangosBucle WhileBreakNextRepaso - FactorialBucle TimesBucle UntilBucles anidadosRepaso - Entrada dinámica3Operadores Parte 1
Operadores aritméticosOperador móduloAtajos aritméticosResumen - Matemáticas simplesOperadores de comparación6Entrada y Salida Básica
Salida con putsSalida con print y pSalida con variablesEntrada con getsMétodo chompConversión de tiposResumen - Calculadora de edadResumen - Verdadero o falso