Überprüfen Sie, ob der Wert im Array in Ruby vorhanden ist
-
Verwenden Sie das
Array#include?
Methode zum Prüfen, ob der Wert im Ruby-Array vorhanden ist -
Verwenden Sie das
Array#any?
Methode zum Prüfen, ob der Wert im Ruby-Array vorhanden ist -
Verwenden Sie die Methode
Array#index
, um zu prüfen, ob der Wert im Ruby-Array vorhanden ist
In Ruby ist ein Array ein gängiger Datentyp. Es enthält Elemente verschiedener Datentypen, darunter Zahl, Zeichenfolge, Boolean und sogar ein anderes Array.
Unter Umständen müssen wir überprüfen, ob ein Wert in einem bestimmten Array vorhanden ist. Dieser Artikel zeigt, wie Sie dies mit den integrierten Methoden des Arrays tun.
Verwenden Sie das Array#include?
Methode zum Prüfen, ob der Wert im Ruby-Array vorhanden ist
Array#include?
scheint der einfachste Weg zu sein, um zu überprüfen, ob sich ein Wert in einem Array befindet.
Befindet sich ein Element im Array, wird Array#include?
liefert true
, sonst false
.
print(['ruby', 'sapphire', 'amber'].include?('ruby'))
print("\n")
print(['ruby', 'sapphire', 'amber'].include?('moonstone'))
Ausgabe:
true
false
Verwenden Sie das Array#any?
Methode zum Prüfen, ob der Wert im Ruby-Array vorhanden ist
Wir könnten auch Array#any?
statt Array#include?
um zu sehen, ob ein Array einen Wert enthält. Denn Array#any?
einen Block akzeptiert, ist es ideal für komplexe Prüflogik.
Er gibt true
zurück, wenn der Block einen anderen Wert als false
oder nil
zurückgibt.
print(['ruby', 'sapphire', 'amber'].any? { |gem| gem == 'moonstone' })
print("\n")
print(['ruby', 'sapphire', 'amber'].any? { |gem| gem == 'ruby' })
Ausgabe:
false
true
Der folgende Code verwendet any?
um zu sehen, ob das Array Edelsteine mit einer Größe von mehr als vier enthält.
print(['ruby', 'sapphire', 'amber'].any? { |gem| gem.size > 4 })
Ausgabe:
true
Verwenden Sie die Methode Array#index
, um zu prüfen, ob der Wert im Ruby-Array vorhanden ist
Es nimmt entweder einen einzelnen Wert an, wie include?
tut, oder ein Block.
Array#index
gibt den Index des übereinstimmenden Werts zurück, andernfalls gibt nil
zurück, im Gegensatz zu include?
und any?
, die einen booleschen Wert zurückgeben.
print(['ruby', 'sapphire', 'amber'].index { |gem| gem == 'ruby' })
print("\n")
print(['ruby', 'sapphire', 'amber'].index { |gem| gem.size > 10 })
Ausgabe:
0
#returns nil