Ruby Academy · leksjon

map, select, reject

Transformer og filtrer

Leksjon 3 av 413 trinn

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.inspect

map 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 }.inspect

Symbolforkortelsen

Når blokken bare kaller én metode, kan De bruke &:method som en forkortelse.

words = ["a", "b", "c"]
puts words.map(&:upcase).inspect

map 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.inspect

Filtrering 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.inspect

Filtrering 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 }.inspect

Fjerne 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? }.inspect

Kjede 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.inspect

filter_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.inspect

flat_map

flat_map mapper og flater deretter ut ett nivå med nestede arrays.

pairs = [[1, 2], [3, 4]]
puts pairs.flat_map { |p| p }.inspect

partition

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.inspect

Hurtigsjekk

Sjekk transformering og filtrering.

Oppsummering

De behersker nå transformering og filtrering:

  • map for transformering, med forkortelsen &:method
  • select/filter og reject
  • 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 }.inspect
Gratis å komme i gang

Læ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

  1. Opprette intervaller
  2. Enumerable-modulen
  3. map, select, reject
  4. reduce og each_with_object
← Tilbake til Ruby Academy