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}"
endTo wyświetla:
0: apple
1: banana
2: cherryZwróć 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}"
endDodają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.
Wyzwanie
ŁatwyWczytaj 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: dateJeśli dane wejściowe to red,green,blue, wynik powinien wyglądać tak:
Item 1: red
Item 2: green
Item 3: blueJeś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: fridayJeśli dane wejściowe to solo, wynik powinien wyglądać tak:
Item 1: soloSpró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"Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.
Wszystkie lekcje w sekcji Podstawy
4Operatory — część 2
Operatory logiczne — część 1Operatory logiczne — część 2Powtórka — podstawy logikiOperatory logiczne — część 3Operatory logiczne — część 47Kalkulator podziału rachunku
Wiadomość powitalnaPobieranie danych od użytkownika2Zmienne i typy danych
Liczby i zmienneTyp danych StringTyp danych BooleanTyp danych SymbolSprawdzanie typów danychKonwencje nazewnictwaPodsumowanie — tworzenie zmiennych5Podejmowanie decyzji
Instrukcja ifIf - elsePowtórka — prosty kalkulatorZagnieżdżone if - elseInstrukcja unless8Pętle
Pętla for z zakresamiPętla whilebreaknextPowtórka – silniaPętla timesPętla untilPętle zagnieżdżonePowtórka – dynamiczne wejście3Operatory — część 1
Operatory arytmetyczneOperator moduloSkrócone operatory arytmetycznePodsumowanie — prosta matematykaOperatory porównania6Podstawowe wejście i wyjście
Wyświetlanie za pomocą putsWyświetlanie za pomocą print i pWyświetlanie zmiennychWczytywanie za pomocą getsMetoda chompKonwersja typówPodsumowanie – kalkulator wiekuPodsumowanie – prawda czy fałszPoćwicz samodzielnie: Kompilator Ruby online