Menu
Coddy logo textTech

Map und Collect

Teil des Abschnitts Grundlagen der Ruby-Journey von Coddy — Lektion 68 von 88.

Während each hervorragend geeignet ist, um Aktionen auf Elementen auszuführen, möchten Sie manchmal ein Array in ein neues umwandeln. Die map-Methode (auch collect genannt) macht genau das: Sie erstellt ein neues Array, das die Ergebnisse der Ausführung Ihres Blocks auf jedem Element enthält.

numbers = [1, 2, 3, 4]
doubled = numbers.map { |n| n * 2 }

puts doubled  # Ausgabe: 2, 4, 6, 8

Der entscheidende Unterschied zu each besteht darin, dass map ein neues Array mit den transformierten Werten zurückgibt. Das ursprüngliche Array bleibt unverändert.

Hier ist ein praktisches Beispiel, das Temperaturen von Celsius in Fahrenheit umrechnet:

celsius = [0, 20, 100]
fahrenheit = celsius.map { |c| c * 9 / 5 + 32 }

puts fahrenheit  # Ausgabe: 32, 68, 212

Du kannst map auch mit Strings verwenden:

names = ["alice", "bob"]
capitalized = names.map { |name| name.capitalize }

puts capitalized  # Ausgabe: Alice, Bob

Die Methoden map und collect sind identisch. Ruby bietet beide Namen an, sodass Sie denjenigen verwenden können, der sich in Ihrem Code besser liest. Die meisten Ruby-Entwickler bevorzugen map, weil es kürzer ist.

challenge icon

Aufgabe

Einfach

Lies eine einzelne Eingabezeile ein, die durch Kommas getrennte Ganzzahlen enthält (z. B. 2,4,6,8,10).

Teile die Eingabe in ein Array von Ganzzahlen auf und verwende dann die Methode map, um ein neues Array zu erstellen, in dem jede Zahl quadriert (mit sich selbst multipliziert) wird.

Gib jedes Element des neuen quadrierten Arrays in einer eigenen Zeile aus.

Wenn die Eingabe beispielsweise 2,4,6,8,10 ist, sollte die Ausgabe wie folgt aussehen:

4
16
36
64
100

Wenn die Eingabe 1,2,3,4,5 ist, sollte die Ausgabe wie folgt aussehen:

1
4
9
16
25

Wenn die Eingabe 3,7,11 ist, sollte die Ausgabe wie folgt aussehen:

9
49
121

Wenn die Eingabe 10 ist, sollte die Ausgabe wie folgt aussehen:

100

Spickzettel

Die map-Methode (auch collect genannt) transformiert ein Array in ein neues, indem sie einen Block auf jedes Element anwendet. Sie gibt ein neues Array mit den transformierten Werten zurück, wobei das ursprüngliche Array unverändert bleibt.

numbers = [1, 2, 3, 4]
doubled = numbers.map { |n| n * 2 }
puts doubled  # Ausgabe: 2, 4, 6, 8

Beispiel mit Temperaturumrechnung:

celsius = [0, 20, 100]
fahrenheit = celsius.map { |c| c * 9 / 5 + 32 }
puts fahrenheit  # Ausgabe: 32, 68, 212

Beispiel mit Strings:

names = ["alice", "bob"]
capitalized = names.map { |name| name.capitalize }
puts capitalized  # Ausgabe: Alice, Bob

map und collect sind identische Methoden. Die meisten Ruby-Entwickler bevorzugen map.

Probier es selbst

# Lies die kommagetrennte Eingabe ein
input = gets.chomp

# TODO: Schreibe deinen Code unten
# 1. Teile den Eingabestring in ein Array von Ganzzahlen auf
# 2. Verwende die map-Methode, um jede Zahl zu quadrieren
# 3. Gib jede quadrierte Zahl in einer eigenen Zeile aus
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