Menu
Coddy logo textTech

Slicing degli array con intervalli

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

A volte devi estrarre una porzione di un array invece di accedere ai singoli elementi. Ruby ti permette di suddividere gli array usando intervalli, creando un nuovo array che contiene solo gli elementi specificati.

Per suddividere un array con un intervallo, inserisci l’intervallo tra parentesi quadre:

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

puts slice  # Stampa: 20, 30, 40

L'intervallo 1..3 include gli elementi agli indici 1, 2 e 3. Ricorda che gli indici degli array iniziano da 0, quindi l'indice 1 corrisponde al secondo elemento.

Puoi anche usare l’intervallo a tre punti (...) per escludere l’ultimo indice:

letters = ["a", "b", "c", "d", "e"]
slice = letters[0...3]

puts slice  # Stampa: a, b, c

Qui, 0...3 include gli indici 0, 1 e 2, ma si fermano prima dell'indice 3.

Gli indici negativi funzionano anche con gli intervalli. Si contano dalla fine dell'array, dove -1 è l'ultimo elemento:

colors = ["red", "green", "blue", "yellow"]
slice = colors[1..-1]

puts slice  # Stampa: green, blue, yellow

Questo estrae tutto dall’indice 1 fino all’ultimo elemento, il che è utile quando vuoi saltare il primo elemento senza conoscere la lunghezza dell’array.

challenge icon

Sfida

Facile

Leggi due input:

  1. Una singola riga di numeri interi separati da virgole (ad es., 10,20,30,40,50,60,70)
  2. Una specifica di intervallo nel formato start..end o start...end (ad es., 2..5 o 1...4)

Dividi il primo input in un array di numeri interi. Poi usa l'intervallo del secondo input per estrarre una sezione dell'array e stampa ogni elemento della sezione estratta su una riga separata.

L'input dell'intervallo userà due punti (..) per includere l'indice finale oppure tre punti (...) per escluderlo.

Ad esempio, se gli input sono 10,20,30,40,50,60,70 e 2..5, l'output dovrebbe essere:

30
40
50
60

Se gli input sono 5,10,15,20,25,30 e 0...3, l'output dovrebbe essere:

5
10
15

Se gli input sono 100,200,300,400,500 e 1..-1, l'output dovrebbe essere:

200
300
400
500

Se gli input sono a,b,c,d,e,f e -3..-1, l'output dovrebbe essere:

d
e
f

Provalo tu

# Leggi i valori separati da virgole
input_values = gets.chomp

# Leggi la specifica dell'intervallo
range_spec = gets.chomp

# TODO: Scrivi il tuo codice qui sotto
# 1. Suddividi input_values in un array
# 2. Analizza range_spec per determinare l'inizio, la fine e se usare .. o ...
# 3. Estrai una porzione dell'array usando l'intervallo appropriato
# 4. Stampa ogni elemento della porzione estratta su una riga a sé
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