在Array中查找值

我如何使用Ruby 1.8.7在Array中找到值?


我猜你正试图找出数组内是否存在某个值,如果是这种情况,可以使用Array#include?(value):

a = [1,2,3,4,5]
a.include?(3)   # => true
a.include?(9)   # => false

如果你的意思是别的,请检查Ruby Array API


使用Array#select将会给你一个满足条件的元素数组。 但是,如果您正在寻找一种将元素从符合条件的数组中取出的方法,那么Enumerable#detect会是更好的方法:

array = [1,2,3]
found = array.select {|e| e == 3} #=> [3]
found = array.detect {|e| e == 3} #=> 3

否则,你将不得不做一些尴尬的事情,如:

found = array.select {|e| e == 3}.first

喜欢这个?

a = [ "a", "b", "c", "d", "e" ]
a[2] +  a[0] + a[1]    #=> "cab"
a[6]                   #=> nil
a[1, 2]                #=> [ "b", "c" ]
a[1..3]                #=> [ "b", "c", "d" ]
a[4..7]                #=> [ "e" ]
a[6..10]               #=> nil
a[-3, 3]               #=> [ "c", "d", "e" ]
# special cases
a[5]                   #=> nil
a[5, 1]                #=> []
a[5..10]               #=> []

或者像这样?

a = [ "a", "b", "c" ]
a.index("b")   #=> 1
a.index("z")   #=> nil

见手册。

链接地址: http://www.djcxy.com/p/25673.html

上一篇: Find value in Array

下一篇: check if array of arrays contains some array