Menu
Coddy logo textTech

each z indeksem

Część sekcji Podstawy ścieżki Ruby w Coddy. Lekcja 66 z 88.

Czasami musisz znać nie tylko element, nad którym pracujesz, ale także jego pozycję w tablicy. Metoda Ruby each_with_index udostępnia zarówno element, jak i jego indeks w ramach jednej iteracji.

Oto jak to działa:

fruits = ["apple", "banana", "cherry"]

fruits.each_with_index do |fruit, index|
  puts "#{index}: #{fruit}"
end

To wyświetla:

0: apple
1: banana
2: cherry

Zwróć uwagę, że blok przyjmuje teraz dwie zmienne między pionowymi kreskami: najpierw element, a następnie indeks. Indeks zaczyna się od 0, tak samo jak przy bezpośrednim dostępie do elementów tablicy.

Jest to szczególnie przydatne, gdy musisz wyświetlać listy numerowane lub śledzić pozycje:

tasks = ["Buy groceries", "Clean room", "Call mom"]

tasks.each_with_index do |task, i|
  puts "Task #{i + 1}: #{task}"
end

Dodając 1 do indeksu, tworzymy przyjazną dla użytkownika numerowaną listę zaczynającą się od 1 zamiast od 0. Metoda each_with_index eliminuje potrzebę ręcznego śledzenia zmiennej licznika, dzięki czemu Twój kod jest czytelniejszy i mniej podatny na błędy.

challenge icon

Wyzwanie

Łatwy

Wczytaj jeden wiersz danych wejściowych zawierający słowa oddzielone przecinkami (np. apple,banana,cherry,date).

Podziel dane wejściowe na tablicę ciągów znaków, a następnie użyj each_with_index, aby wyświetlić każdy element jako pozycję na numerowanej liście, zaczynając od 1 (nie od 0).

Każdy wiersz powinien mieć następujący format: Item 1: apple

Na przykład, jeśli dane wejściowe to apple,banana,cherry,date, wynik powinien wyglądać tak:

Item 1: apple
Item 2: banana
Item 3: cherry
Item 4: date

Jeśli dane wejściowe to red,green,blue, wynik powinien wyglądać tak:

Item 1: red
Item 2: green
Item 3: blue

Jeśli dane wejściowe to monday,tuesday,wednesday,thursday,friday, wynik powinien wyglądać tak:

Item 1: monday
Item 2: tuesday
Item 3: wednesday
Item 4: thursday
Item 5: friday

Jeśli dane wejściowe to solo, wynik powinien wyglądać tak:

Item 1: solo

Spróbuj swoich sił

# Wczytaj dane wejściowe rozdzielone przecinkami
input = gets.chomp

# Podziel dane wejściowe na tablicę
items = input.split(",")

# TODO: Użyj each_with_index, aby wypisać każdy element jako pozycję numerowanej listy
# Pamiętaj: indeks zaczyna się od 0, ale wyświetlanie musi zaczynać się od 1
# Format: "Item 1: apple"
quiz iconSprawdź się

Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.

Wszystkie lekcje w sekcji Podstawy

Poćwicz samodzielnie: Kompilator Ruby online