以下代碼有效,但您能否告訴我這是否是正確的方式?查找對象數組是否包含具有特定值的屬性
我有定位對象的數組,我要檢查它是否包含哪個屬性「隱藏」有對象「假」值:
<% if positions.collect{|position| position.hidden}.include?(false) %>
...
<% end %>
以下代碼有效,但您能否告訴我這是否是正確的方式?查找對象數組是否包含具有特定值的屬性
我有定位對象的數組,我要檢查它是否包含哪個屬性「隱藏」有對象「假」值:
<% if positions.collect{|position| position.hidden}.include?(false) %>
...
<% end %>
<% if positions.any?{|position| !position.hidden} %>
...
<% end %>
使用any?方法
if positions.any? {|position| not position.hidden}
您還可以使用all?方法:
<% unless positions.all? {|position| position.hidden} %>
...
<% end %>
如果你喜歡,另一種簡化方法是:'如果positions.map(&隱藏).include?(false)'。 (警告:如果'hidden'屬性返回nil,則這和原始方法的行爲將與下面給出的答案不同。) – antinome 2013-03-20 16:04:00