0Pricing
Ruby Academy · Lekcja

map, select, reject

Przekształcanie i filtrowanie

map, select, reject to bezpłatna lekcja Ruby Academy na CoddyKit. To lekcja 3 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej Ruby Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Ruby Academy zawiera 4 lekcji w sumie.

Transformowanie za pomocą map

map tworzy nową tablicę, wykonując blok dla każdego elementu. Oryginalna tablica pozostaje niezmieniona.

nums = [1, 2, 3]
doubled = nums.map { |n| n * 2 }
puts doubled.inspect
puts nums.inspect

map dla napisów

map może przekształcać wartości dowolnego rodzaju, na przykład zamieniać słowa na wielkie litery.

words = ["red", "green"]
puts words.map { |w| w.upcase }.inspect

Skrót symbolu

Jeśli blok tylko wywołuje jedną metodę, proszę użyć &:method jako skrótu.

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

map z indeksem

Proszę połączyć with_index z map, gdy potrzebne są również pozycje elementów.

letters = %w[a b c]
result = letters.map.with_index { |l, i| "#{i}:#{l}" }
puts result.inspect

Filtrowanie za pomocą select

select (alias filter) zachowuje tylko te elementy, dla których blok zwraca true.

nums = [1, 2, 3, 4, 5, 6]
evens = nums.select { |n| n.even? }
puts evens.inspect

Filtrowanie napisów

select działa dla dowolnego warunku, na przykład pozwala zachować długie słowa.

words = ["hi", "hello", "hey", "welcome"]
puts words.select { |w| w.length > 3 }.inspect

Usuwanie za pomocą reject

reject jest odwrotnością select. Usuwa te elementy, dla których blok zwraca true.

nums = [1, 2, 3, 4]
puts nums.reject { |n| n.even? }.inspect

Łączenie map i select

Ponieważ każda z tych metod zwraca nową tablicę, można łączyć metody w potok.

nums = [1, 2, 3, 4, 5]
result = nums.select { |n| n.odd? }.map { |n| n * 10 }
puts result.inspect

filter_map

filter_map łączy filtrowanie i mapowanie w jednym przebiegu: zachowuje wyniki bloku inne niż false.

nums = [1, 2, 3, 4]
result = nums.filter_map { |n| n * 2 if n.even? }
puts result.inspect

flat_map

flat_map mapuje elementy, a następnie spłaszcza jeden poziom zagnieżdżonych tablic.

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

partition

partition dzieli kolekcję na dwie tablice: elementy pasujące i niepasujące.

nums = [1, 2, 3, 4, 5]
evens, odds = nums.partition { |n| n.even? }
puts evens.inspect
puts odds.inspect

Szybki test

Proszę sprawdzić swoją wiedzę o transformowaniu i filtrowaniu.

Podsumowanie

Opanowali Państwo transformowanie i filtrowanie:

  • map do transformowania oraz skrót &:method
  • select/filter i reject
  • łączenie metod, filter_map, flat_map, partition

Następnie: reduce i each_with_object do agregowania danych.

puts [1, 2, 3, 4].select(&:even?).map { |n| n * n }.inspect

Często zadawane pytania

Czy lekcja „map, select, reject” jest bezpłatna?

Tak — pełny tekst „map, select, reject” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu Ruby Academy, przejdź na CoddyKit PRO. Kurs Ruby Academy zawiera 4 lekcji w sumie.

Co nauczysz się w „map, select, reject”?

Przekształcanie i filtrowanie Ćwiczysz Ruby Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.

Czy potrzebuję doświadczenia, aby zacząć Ruby Academy?

Nie wymagamy żadnego doświadczenia. Ruby Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 3 z 4.

Ile czasu zajmuje lekcja „map, select, reject”?

Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.

Czy mogę pisać i uruchamiać kod w tej lekcji Ruby Academy?

Tak. Każda lekcja Ruby Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.

Wszystkie lekcje w tym kursie

  1. Tworzenie zakresów
  2. Moduł Enumerable
  3. map, select, reject
  4. reduce i each_with_object
← Powrót do Ruby Academy