Menu
Coddy logo textTech

Map e collect

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

Sebbene each sia ottimo per eseguire azioni sugli elementi, a volte vuoi trasformare un array in uno nuovo. Il metodo map (chiamato anche collect) fa esattamente questo: crea un nuovo array contenente i risultati dell'esecuzione del tuo blocco su ogni elemento.

numbers = [1, 2, 3, 4]
doubled = numbers.map { |n| n * 2 }

puts doubled  # Restituisce: 2, 4, 6, 8

La differenza principale rispetto a each è che map restituisce un nuovo array con i valori trasformati. L'array originale rimane invariato.

Ecco un esempio pratico che converte le temperature da Celsius a Fahrenheit:

celsius = [0, 20, 100]
fahrenheit = celsius.map { |c| c * 9 / 5 + 32 }

puts fahrenheit  # Output: 32, 68, 212

Puoi anche usare map con le stringhe:

names = ["alice", "bob"]
capitalized = names.map { |name| name.capitalize }

puts capitalized  # Stampa: Alice, Bob

I metodi map e collect sono identici. Ruby fornisce entrambi i nomi, quindi puoi usare quello che si legge meglio nel tuo codice. La maggior parte degli sviluppatori Ruby preferisce map perché è più breve.

challenge icon

Sfida

Facile

Leggi una singola riga di input contenente numeri interi separati da virgole (ad es., 2,4,6,8,10).

Suddividi l'input in un array di numeri interi, quindi usa il metodo map per creare un nuovo array in cui ogni numero è elevato al quadrato (moltiplicato per se stesso).

Stampa ogni elemento del nuovo array dei quadrati su una riga separata.

Ad esempio, se l'input è 2,4,6,8,10, l'output dovrebbe essere:

4
16
36
64
100

Se l'input è 1,2,3,4,5, l'output dovrebbe essere:

1
4
9
16
25

Se l'input è 3,7,11, l'output dovrebbe essere:

9
49
121

Se l'input è 10, l'output dovrebbe essere:

100

Provalo tu

# Leggi l'input separato da virgole
input = gets.chomp

# TODO: Scrivi il tuo codice qui sotto
# 1. Dividi la stringa di input in un array di numeri interi
# 2. Usa il metodo map per elevare al quadrato ogni numero
# 3. Stampa ogni numero elevato al quadrato 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