查找数组中的第一个非Nil元素

时间:2013-08-26 16:08:01

标签: ruby

我有这段代码:

default_group_id =  @group_list[0].list[0].name

但有时候@group_list[0]的列表成员是空的,所以我的代码崩溃了:) 所以我需要找到它的列表成员不是nil的第一个@group_list[i]并使用它。 我们怎么做到这一点?

这是结构:

enter image description here

3 个答案:

答案 0 :(得分:12)

传递Enumerable#find

Object#itself是一个方便的快捷方式:

@group_list.find(&:itself)

答案 1 :(得分:8)

您可以使用Enumerable#find

@group_list.find { |x| !x["list"].blank? }
#=> first non-nil and non-empty list in group_list

答案 2 :(得分:7)

您可以使用Enumerable#find

@group_list.find{|x|!x.nil?} # => the first non-nil element in @group_list