Finden einen Wert in einem Ruby-Array

Finden einen Wert in einem Ruby-Array

Der beste Weg, einen Wert in einem Ruby-Array zu finden, ist die Verwendung der Methode find oder detect; beide sind Aliase und können austauschbar verwendet werden. Sie akzeptieren ein Blockargument und geben den ersten Wert zurück, der eine beliebige im Block angegebene Bedingung erfüllt.

Das folgende Beispiel sucht nach der ungeraden Zahl in einem Array von 2 bis 4.

Beispielcode:

numbers = [2, 3, 4]
odd_number = numbers.find { |n| n.odd? }
puts odd_number

Ausgabe:

3

Beispielcode:

numbers = [2, 3, 4]
odd_number = numbers.detect { |n| n.odd? }
puts odd_number

Ausgabe:

3

Eine andere Möglichkeit, einen Wert in einem Array zu finden, ist die Verwendung der select-Methode.

Obwohl nicht effizient, aber es ist erwähnenswert. Es ist ineffizient, weil es durch das gesamte gesuchte Array iteriert, unabhängig davon, ob der gesuchte Wert am Anfang oder am Ende des Arrays steht, im Gegensatz zu find und detect, die aufhören zu iterieren, sobald sie den gefunden haben Wert.

Erwähnenswert ist auch, dass die Methode select darauf ausgelegt ist, nach mehreren Werten zu suchen und diese als Array zurückzugeben. Angenommen, wir hätten im obigen Beispiel mehrere ungerade Zahlen erwartet, wäre select eine bevorzugte Methode gewesen.

Beispielcode:

numbers = [2, 3, 4, 5]
odd_numbers = numbers.select { |n| n.odd? }
puts odd_numbers

Ausgabe:

[3, 5]

Verwandter Artikel - Ruby Array

  • Die Bedeutung der %w-Syntax in Ruby
  • Ein Array mit Index abbilden in Ruby
  • Iterieren durch ein Ruby-Array
  • Konvertieren ein Array in einen String in Ruby
  • Summiere ein Array von Zahlen in Ruby