Menu
Coddy logo textTech

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}"
end

Dies gibt Folgendes aus:

0: apple
1: banana
2: cherry

Beachten 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}"
end

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

challenge icon

Aufgabe

Einfach

Lies 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: date

Wenn die Eingabe red,green,blue lautet, sollte die Ausgabe wie folgt aussehen:

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

Wenn 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: friday

Wenn die Eingabe solo lautet, sollte die Ausgabe wie folgt aussehen:

Item 1: solo

Spickzettel

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}"
end

Ausgabe:

0: apple
1: banana
2: cherry

Der 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}"
end

Probier 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"
quiz iconTeste dich selbst

Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.

Alle Lektionen in Grundlagen