map, select, reject
Transformer og filtrer
map, select, reject er en gratis leksjon i Ruby Academy på CoddyKit. Dette er leksjon 3 av 4. Du kan lese valgfritt 3 leksjoner fra denne læringsstien gratis i sin helhet – deretter låser CoddyKit PRO opp alle leksjoner, samt praktisk øving med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Den er en del av læringsløpet i Ruby Academy, og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i Ruby Academy inneholder totalt 4 leksjoner.
Transformering med map
map oppretter et nytt array ved å kjøre blokken på hvert element. Det opprinnelige arrayet forblir uendret.
nums = [1, 2, 3]
doubled = nums.map { |n| n * 2 }
puts doubled.inspect
puts nums.inspectmap for strenger
map kan transformere alle slags verdier, for eksempel ved å gjøre ord om til store bokstaver.
words = ["red", "green"]
puts words.map { |w| w.upcase }.inspectSymbolforkortelsen
Når blokken bare kaller én metode, kan De bruke &:method som en forkortelse.
words = ["a", "b", "c"]
puts words.map(&:upcase).inspectmap med indeks
Kjed sammen with_index når De også trenger plasseringene.
letters = %w[a b c]
result = letters.map.with_index { |l, i| "#{i}:#{l}" }
puts result.inspectFiltrering med select
select (aliaset filter) beholder bare elementer der blokken returnerer true.
nums = [1, 2, 3, 4, 5, 6]
evens = nums.select { |n| n.even? }
puts evens.inspectFiltrering av strenger
select fungerer med alle betingelser, for eksempel når De vil beholde lange ord.
words = ["hi", "hello", "hey", "welcome"]
puts words.select { |w| w.length > 3 }.inspectFjerne med reject
reject er det motsatte av select. Den fjerner elementer der blokken returnerer true.
nums = [1, 2, 3, 4]
puts nums.reject { |n| n.even? }.inspectKjede map og select
Ettersom hver av dem returnerer et nytt array, kan De kjede metoder sammen til en arbeidsflyt.
nums = [1, 2, 3, 4, 5]
result = nums.select { |n| n.odd? }.map { |n| n * 10 }
puts result.inspectfilter_map
filter_map kombinerer filtrering og mapping i én gjennomgang: den beholder blokkresultater som ikke er false.
nums = [1, 2, 3, 4]
result = nums.filter_map { |n| n * 2 if n.even? }
puts result.inspectflat_map
flat_map mapper og flater deretter ut ett nivå med nestede arrays.
pairs = [[1, 2], [3, 4]]
puts pairs.flat_map { |p| p }.inspectpartition
partition deler en samling i to arrays: samsvarende elementer og elementer som ikke samsvarer.
nums = [1, 2, 3, 4, 5]
evens, odds = nums.partition { |n| n.even? }
puts evens.inspect
puts odds.inspectHurtigsjekk
Sjekk transformering og filtrering.
Oppsummering
De behersker nå transformering og filtrering:
mapfor transformering, med forkortelsen&:methodselect/filterogreject- kjeding,
filter_map,flat_map,partition
Neste tema: reduce og each_with_object for aggregering.
puts [1, 2, 3, 4].select(&:even?).map { |n| n * n }.inspectLær deg Ruby med en AI-veileder – gratis
Skriv og kjør ekte kode i nettleseren, få umiddelbar hjelp fra en AI-veileder som er tilgjengelig døgnet rundt, og fortsett der du slapp – på nettet eller i appen.
- Kurs
- 29
- Leksjoner
- 109
Ofte stilte spørsmål
Er leksjonen «map, select, reject» gratis?
Ja – du kan lese valgfritt 3 av leksjonene i læringsstien Ruby Academy, inkludert «map, select, reject», gratis i sin helhet her på nettet. Deretter låser CoddyKit PRO opp alle leksjoner, samt interaktiv øving med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Kurset i Ruby Academy inneholder totalt 4 leksjoner.
Hva lærer jeg i «map, select, reject»?
Transformer og filtrer Du øver på Ruby Academy med praktisk kode som du kjører direkte i nettleseren, mens en AI-veileder som er tilgjengelig døgnet rundt, svarer på spørsmålene dine mens du jobber deg gjennom leksjonen.
Trenger jeg erfaring for å begynne med Ruby Academy?
Ingen tidligere erfaring er nødvendig. Ruby Academy på CoddyKit er lagt opp for både nybegynnere og viderekomne, så De kan begynne her eller helt fra start og lære i Deres eget tempo. Dette er leksjon 3 av 4.
Hvor lang tid tar leksjonen «map, select, reject»?
De fleste CoddyKit-leksjoner tar omtrent 5–10 minutter. Hver leksjon er kort og interaktiv, slik at De gjør jevne fremskritt og kan fortsette akkurat der De slapp – både på nettet og i appen.
Kan jeg skrive og kjøre kode i denne Ruby Academy-leksjonen?
Ja. Alle Ruby Academy-leksjoner har en innebygd kodeeditor, slik at De kan skrive og kjøre ekte kode direkte i nettleseren og få umiddelbar tilbakemelding fra AI – uten lokal konfigurering.
Alle leksjonene i dette kurset
- Opprette intervaller
- Enumerable-modulen
- map, select, reject
- reduce og each_with_object