Найти, содержит ли массив объектов атрибут с определенным значением - PullRequest
18 голосов
/ 19 марта 2011

Следующий код работает, но можете ли вы сказать мне, если это правильный способ сделать это?

У меня есть массив объектов Position, и я хочу проверить, содержит ли он объект, у которого атрибут «hidden» имеет значение «false»:

<% if positions.collect{|position| position.hidden}.include?(false) %>
  ...
<% end %>

Ответы [ 3 ]

28 голосов
/ 19 марта 2011
<% if positions.any?{|position| !position.hidden} %>
  ...
<% end %>

Использование метода any?

3 голосов
/ 19 марта 2011

if positions.any? {|position| not position.hidden}

1 голос
/ 14 апреля 2012

Вы также можете использовать все? метод:

<% unless positions.all? {|position| position.hidden} %>
 ...
<% end %>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...