Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arrays 按内部数组值查找的数组的Ruby数组_Arrays_Ruby - Fatal编程技术网

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

但它会找到所有的匹配,还是只找到第一个匹配?安德烈已经搞定了,我错过了你想要的全部