我有一些数组,如下所示:
a = [['1','1500','SomeName','SomeSurname'],
['2','1500','SomeName2','SomeSurname2'],
['3','1500','SomeName3','SomeSurname3'],
['4','1501','SomeName','SomeSurname'],
...]
我可以获得此数组的子数组,其中所有行都包含.each
函数和if
函数的“1500”值,但如果a.length
很大,则需要花费太多时间! 如何从a
获取具有特定a[1]
值的所有行,而不会迭代a
?
答案 0 :(得分:7)
Enumerable#find_all
正是您所寻找的:
a.find_all { |el| el[1] == '1500' } # a.select will do the same
答案 1 :(得分:4)
您有几个选项,可以使用find:
a.find { |l| l[1] == '5' }
这将找到与前5个匹配的数组
你需要使用find_all来查找所有:
a.find_all { |l| l[1] == '5' }
答案 2 :(得分:1)
使用select
获取所有匹配的元素:
a.select { |e| e[1] == '1500' }