Ruby数组数组按内部数组值查找

时间:2015-05-12 10:51:40

标签: arrays ruby

我有一些数组,如下所示:

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

3 个答案:

答案 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' }