Menu
Coddy logo textTech

Slicing degli array con indici

Fa parte della sezione Fondamenti del percorso Ruby di Coddy. Lezione 70 di 88.

Ruby offre un altro modo per suddividere gli array usando un indice iniziale e una lunghezza. Invece di specificare un intervallo, fornisci due numeri: da dove iniziare e quanti elementi estrarre.

La sintassi usa una virgola per separare l'indice iniziale dal conteggio:

numbers = [10, 20, 30, 40, 50]
slice = numbers[1, 3]

puts slice  # Restituisce: 20, 30, 40

Questo estrae 3 elementi a partire dall’indice 1. Il primo numero è la posizione iniziale e il secondo indica quanti elementi vuoi.

Questo approccio è particolarmente utile quando sai esattamente quanti elementi ti servono:

letters = ["a", "b", "c", "d", "e"]
first_two = letters[0, 2]

puts first_two  # Stampa: a, b

Anche qui funzionano gli indici negativi. Puoi iniziare dalla fine dell'array:

colors = ["red", "green", "blue", "yellow"]
last_two = colors[-2, 2]

puts last_two  # Stampa: blue, yellow

Se richiedi più elementi di quanti siano disponibili, Ruby restituisce semplicemente quelli esistenti senza generare un errore:

nums = [1, 2, 3]
slice = nums[1, 10]

puts slice  # Stampa: 2, 3

Scegli questo metodo quando conosci il numero di elementi necessari e usa gli intervalli quando conosci le posizioni esatte.

challenge icon

Sfida

Facile

Leggi tre input:

  1. Una singola riga di numeri interi separati da virgole (ad es., 5,10,15,20,25,30,35,40)
  2. Un indice iniziale (numero intero)
  3. Il numero di elementi da estrarre (numero intero)

Dividi il primo input in un array di numeri interi. Usa l’indice iniziale e il conteggio per estrarre una sezione dell’array usando la sintassi indice-lunghezza, quindi stampa ogni elemento della sezione estratta su una riga separata.

Ad esempio, se gli input sono 5,10,15,20,25,30,35,40, 2 e 4, l’output dovrebbe essere:

15
20
25
30

Se gli input sono 100,200,300,400,500, 0 e 2, l’output dovrebbe essere:

100
200

Se gli input sono a,b,c,d,e,f,g, -3 e 2, l’output dovrebbe essere:

e
f

Se gli input sono 10,20,30, 1 e 10, l’output dovrebbe essere:

20
30

Provalo tu

# Leggi gli input
input_line = gets.chomp
start_index = gets.chomp.to_i
count = gets.chomp.to_i

# Suddividi l'input in un array
arr = input_line.split(',')

# TODO: Scrivi qui sotto il codice per estrarre una porzione dell'array usando la sintassi con indice e lunghezza
# e stampa ogni elemento su una riga separata
quiz iconMettiti alla prova

Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.

Tutte le lezioni di Fondamenti

Esercitati da solo: Compilatore Ruby online