[英]How do I check to see if an array of arrays has a value within the inner arrays?
假设我有一个数组,看起来像这样:
[[1830, 1], [1859, 1]]
我想做的是快速扫描内部数组,看是否其中任何一个包含数字1830
。 如果是这样,我希望它返回整个数组,该数组包含上例中的数字1830
,又名[1830, 1]
。
我知道对于一个普通的值数组,我只会做array.include? 1830
array.include? 1830
,但这在这里不起作用,如下所示:
@add_lines_num_start
#=> [[1830, 1], [1859, 1]]
@add_lines_num_start.include? 1830
#=> false
@add_lines_num_start.first.include? 1830
#=> true
我怎么做?
a = [[1830, 1], [1859, 1]]
a.find { |ar| ar.grep(1830) }
#=> [1830, 1]
参考文献:
正如@Ilya在评论中提到的,而不是使用grep
遍历整个数组,您可以使用方法返回找到符合条件的布尔值:
a.find { |ar| ar.include?(1830) }
参考文献:
万一数组中有多个匹配数组,可以使用Enumerable# find_all
:
a = [[1830, 1], [1859, 1], [1893, 1830]]
a.find_all { |ar| ar.include?(1830) }
#=> [[1830, 1], [1893, 1830]]
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.