Arrays 按内部数组值查找的数组的Ruby数组
我有一组数组,如下所示:Arrays 按内部数组值查找的数组的Ruby数组,arrays,ruby,Arrays,Ruby,我有一组数组,如下所示: a = [['1','1500','SomeName','SomeSurname'], ['2','1500','SomeName2','SomeSurname2'], ['3','1500','SomeName3','SomeSurname3'], ['4','1501','SomeName','SomeSurname'], ...] 我可以通过获得这个数组的子数组,所有行都包含'1500'值。每个函数和简单的if,但是如果a.length很大,那就太花时间了如何从
a = [['1','1500','SomeName','SomeSurname'],
['2','1500','SomeName2','SomeSurname2'],
['3','1500','SomeName3','SomeSurname3'],
['4','1501','SomeName','SomeSurname'],
...]
我可以通过
获得这个数组的子数组,所有行都包含'1500'值。每个函数和简单的if
,但是如果a.length
很大,那就太花时间了如何从a
获取具有特定a[1]
值的所有行,而无需迭代a
?您有几个选项,可以使用查找:
a.find { |l| l[1] == '5' }
这将找到与前5个匹配的数组
您需要使用find_all来查找所有:
a.find_all { |l| l[1] == '5' }
这是您正在寻找的:
a.find_all { |el| el[1] == '1500' } # a.select will do the same
使用选择获取所有匹配元素:
a.select { |e| e[1] == '1500' }
但它会找到所有的匹配,还是只找到第一个匹配?安德烈已经搞定了,我错过了你想要的全部