Menu
Coddy logo textTech

Select und Reject

Teil des Abschnitts Logik & Programmfluss der Ruby-Journey von Coddy. Lektion 21 von 56.

Die Methode select gibt ein neues Array zurück, das nur die Elemente enthält, für die der Block einen Wahrheitswert zurückgibt. So schreibt Ruby „filter“.

numbers = [1, 2, 3, 4, 5, 6]
evens = numbers.select { |n| n.even? }
puts evens.inspect   # [2, 4, 6]

reject ist das Gegenteil: Es behält alles, wofür der Block false zurückgibt:

odds = numbers.reject { |n| n.even? }
puts odds.inspect    # [1, 3, 5]

Beide geben ein neues Array zurück; das ursprüngliche bleibt unverändert.

Der Block ist einfach ein Prädikat; alles, was zu wahr oder falsch ausgewertet wird, funktioniert:

words = ["hi", "hello", "hey", "yo"]
long  = words.select { |w| w.length >= 3 }
puts long.inspect    # ["hello", "hey"]
challenge icon

Aufgabe

Anfänger

Lies eine durch Kommas getrennte Liste von Ganzzahlen ein. Gib zwei Zeilen aus:

  1. Die Zahlen größer als 10 (verwende select), verbunden mit ,
  2. Die Zahlen, die nicht durch 3 teilbar sind (verwende reject), verbunden mit ,

Für die Eingabe 3,7,12,15,20 lautet die Ausgabe:

12, 15, 20
7, 20

Probier es selbst

numbers = gets.chomp.split(",").map(&:to_i)

# TODO: Zeile 1, numbers > 10, verbunden mit ", "
# TODO: Zeile 2, numbers NICHT durch 3 teilbar, verbunden mit ", "
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 Logik & Programmfluss

Übe selbstständig: Online-Ruby-Compiler