map, select, reject
Trasformare e filtrare
map, select, reject è una lezione Ruby Academy gratuita su CoddyKit. Questa è la lezione 3 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento Ruby Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Ruby Academy include 4 lezioni in totale.
Trasformare con map
map crea un nuovo array eseguendo il blocco su ogni elemento. L'array originale non viene modificato.
nums = [1, 2, 3]
doubled = nums.map { |n| n * 2 }
puts doubled.inspect
puts nums.inspectmap per le stringhe
map può trasformare qualsiasi tipo di valore, ad esempio convertendo le parole in maiuscolo.
words = ["red", "green"]
puts words.map { |w| w.upcase }.inspectLa scorciatoia con i simboli
Quando il blocco richiama un solo metodo, utilizzi &:method come scorciatoia.
words = ["a", "b", "c"]
puts words.map(&:upcase).inspectmap con l'indice
Concateni with_index quando ha bisogno anche delle posizioni.
letters = %w[a b c]
result = letters.map.with_index { |l, i| "#{i}:#{l}" }
puts result.inspectFiltrare con select
select (alias filter) conserva solo gli elementi per i quali il blocco restituisce true.
nums = [1, 2, 3, 4, 5, 6]
evens = nums.select { |n| n.even? }
puts evens.inspectFiltrare le stringhe
select funziona con qualsiasi condizione, ad esempio per conservare le parole lunghe.
words = ["hi", "hello", "hey", "welcome"]
puts words.select { |w| w.length > 3 }.inspectRimuovere con reject
reject è l'opposto di select. Rimuove gli elementi per i quali il blocco restituisce true.
nums = [1, 2, 3, 4]
puts nums.reject { |n| n.even? }.inspectConcatenare map e select
Poiché ciascun metodo restituisce un nuovo array, può concatenare i metodi in una pipeline.
nums = [1, 2, 3, 4, 5]
result = nums.select { |n| n.odd? }.map { |n| n * 10 }
puts result.inspectfilter_map
filter_map combina filtraggio e trasformazione in un'unica iterazione: conserva i risultati del blocco diversi da false.
nums = [1, 2, 3, 4]
result = nums.filter_map { |n| n * 2 if n.even? }
puts result.inspectflat_map
flat_map applica una trasformazione e poi appiattisce un livello degli array annidati.
pairs = [[1, 2], [3, 4]]
puts pairs.flat_map { |p| p }.inspectpartition
partition divide una raccolta in due array: elementi corrispondenti ed elementi non corrispondenti.
nums = [1, 2, 3, 4, 5]
evens, odds = nums.partition { |n| n.even? }
puts evens.inspect
puts odds.inspectVerifica rapida
Verifichi la Sua comprensione delle trasformazioni e dei filtri.
Riepilogo
Ha imparato a trasformare e filtrare:
mapper trasformare, con la scorciatoia&:methodselect/filterereject- concatenazione di metodi,
filter_map,flat_map,partition
Successivamente: reduce e each_with_object per l'aggregazione.
puts [1, 2, 3, 4].select(&:even?).map { |n| n * n }.inspectDomande Frequenti
La lezione «map, select, reject» è gratuita?
Sì — il testo completo di «map, select, reject» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso Ruby Academy, passa a CoddyKit PRO. Il corso Ruby Academy include 4 lezioni in totale.
Cosa imparerò in «map, select, reject»?
Trasformare e filtrare Eserciti Ruby Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.
Ho bisogno di esperienza per iniziare Ruby Academy?
Non è richiesta alcuna esperienza precedente. Ruby Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 3 di 4.
Quanto tempo richiede la lezione «map, select, reject»?
La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.
Posso scrivere ed eseguire codice in questa lezione Ruby Academy?
Sì. Ogni lezione Ruby Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.
Tutte le lezioni di questo corso
- Creare intervalli
- Il modulo Enumerable
- map, select, reject
- reduce e each_with_object