Each with Index
Teil des Abschnitts Grundlagen der Ruby-Journey von Coddy — Lektion 66 von 88.
Manchmal müssen Sie nicht nur das Element kennen, mit dem Sie arbeiten, sondern auch seine Position im Array. Rubys each_with_index-Methode liefert Ihnen sowohl das Element als auch seinen Index in einer einzigen Iteration.
So funktioniert es:
fruits = ["apple", "banana", "cherry"]
fruits.each_with_index do |fruit, index|
puts "#{index}: #{fruit}"
endDies gibt Folgendes aus:
0: apple
1: banana
2: cherryBeachten Sie, dass der Block nun zwei Variablen zwischen den Pipes entgegennimmt: Zuerst kommt das Element, gefolgt vom Index. Der Index beginnt bei 0, genau wie beim direkten Zugriff auf Array-Elemente.
Dies ist besonders nützlich, wenn Sie nummerierte Listen anzeigen oder Positionen verfolgen müssen:
tasks = ["Buy groceries", "Clean room", "Call mom"]
tasks.each_with_index do |task, i|
puts "Task #{i + 1}: #{task}"
endIndem wir 1 zum Index addieren, erstellen wir eine benutzerfreundliche nummerierte Liste, die bei 1 statt bei 0 beginnt. Die each_with_index-Methode macht das manuelle Verfolgen einer Zählervariable überflüssig, wodurch Ihr Code sauberer und weniger fehleranfällig wird.
Aufgabe
EinfachLies eine einzelne Eingabezeile ein, die durch Kommas getrennte Wörter enthält (z. B. apple,banana,cherry,date).
Teile die Eingabe in ein Array von Strings auf und verwende dann each_with_index, um jedes Element als nummerierte Liste beginnend bei 1 (nicht 0) auszugeben.
Jede Zeile sollte diesem Format folgen: Item 1: apple
Wenn die Eingabe beispielsweise apple,banana,cherry,date lautet, sollte die Ausgabe wie folgt aussehen:
Item 1: apple
Item 2: banana
Item 3: cherry
Item 4: dateWenn die Eingabe red,green,blue lautet, sollte die Ausgabe wie folgt aussehen:
Item 1: red
Item 2: green
Item 3: blueWenn die Eingabe monday,tuesday,wednesday,thursday,friday lautet, sollte die Ausgabe wie folgt aussehen:
Item 1: monday
Item 2: tuesday
Item 3: wednesday
Item 4: thursday
Item 5: fridayWenn die Eingabe solo lautet, sollte die Ausgabe wie folgt aussehen:
Item 1: soloSpickzettel
Die Methode each_with_index ermöglicht es Ihnen, über ein Array zu iterieren und dabei sowohl auf das Element als auch auf dessen Index zuzugreifen:
fruits = ["apple", "banana", "cherry"]
fruits.each_with_index do |fruit, index|
puts "#{index}: #{fruit}"
endAusgabe:
0: apple
1: banana
2: cherryDer Block nimmt zwei Variablen entgegen: zuerst das Element, dann den Index. Der Index beginnt bei 0.
Um benutzerfreundliche nummerierte Listen zu erstellen, die bei 1 beginnen, addieren Sie 1 zum Index:
tasks = ["Buy groceries", "Clean room", "Call mom"]
tasks.each_with_index do |task, i|
puts "Task #{i + 1}: #{task}"
endProbier es selbst
# Liest die komma-getrennte Eingabe
input = gets.chomp
# Teilt die Eingabe in ein Array auf
items = input.split(",")
# TODO: Verwende each_with_index, um jedes Element als nummerierte Liste auszugeben
# Denke daran: Der Index beginnt bei 0, aber die Anzeige soll bei 1 beginnen
# Format: "Item 1: apple"Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.
Alle Lektionen in Grundlagen
4Operatoren Teil 2
Logische Operatoren Teil 1Logische Operatoren Teil 2Wiederholung – Einfache LogikLogische Operatoren Teil 3Logische Operatoren Teil 47Rechnungs-Splitter
WillkommensnachrichtBenutzereingaben abfragen10FizzBuzz mit Twist
SpielübersichtDie FizzBuzz-Methode13Arrays für Fortgeschrittene
Array Slicing mit BereichenArray Slicing mit IndizesArray-OperatorenInclude? Methode2Variablen und Datentypen
Zahlen und VariablenDatentyp StringDatentyp BooleanDatentyp SymbolDatentypen prüfenBenennungskonventionenZusammenfassung – Erstellung von Variablen5Entscheidungsfindung
If-AnweisungIf - ElseWiederholung - Einfacher TaschenrechnerVerschachtelte If - Else-AnweisungenUnless-Anweisung8Schleifen
For-Schleife mit RangesWhile-SchleifeBreakNextRückblick - FakultätTimes-SchleifeUntil-SchleifeVerschachtelte SchleifenRückblick - Dynamische Eingabe3Operatoren Teil 1
Arithmetische OperatorenModulo-OperatorArithmetische AbkürzungenWiederholung – Einfache MathematikVergleichsoperatoren6Grundlagen Ein- und Ausgabe
Ausgabe mit putsAusgabe mit print und pAusgabe mit VariablenEingabe mit getsChomp-MethodeTypumwandlungWiederholung - AltersrechnerWiederholung - Wahr oder Falsch