查找对象数组是否包含具有特定值的属性
问题描述:
以下代码有效,但您能否告诉我这是否是正确的方式?查找对象数组是否包含具有特定值的属性
我有定位对象的数组,我要检查它是否包含哪个属性“隐藏”有对象“假”值:
<% if positions.collect{|position| position.hidden}.include?(false) %>
...
<% end %>
答
if positions.any? {|position| not position.hidden}
如果你喜欢,另一种简化方法是:'如果positions.map(&隐藏).include?(false)'。 (警告:如果'hidden'属性返回nil,则这和原始方法的行为将与下面给出的答案不同。) – antinome 2013-03-20 16:04:00