Überprüfen Sie, ob der Wert im Array in Ruby vorhanden ist

Stewart Nguyen 30 Januar 2023
  1. Verwenden Sie das Array#include? Methode zum Prüfen, ob der Wert im Ruby-Array vorhanden ist
  2. Verwenden Sie das Array#any? Methode zum Prüfen, ob der Wert im Ruby-Array vorhanden ist
  3. Verwenden Sie die Methode Array#index, um zu prüfen, ob der Wert im Ruby-Array vorhanden ist
Überprüfen Sie, ob der Wert im Array in Ruby 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

Verwandter Artikel - Ruby Array