评估数组是否包含ruby中的任何项目

evaluate if array has any items in ruby

有没有更好的申报方法?

1
if current_user.received_replies.unread.count > 0

我要做的是匹配条件,前提是至少有一个unread对象。


1
2
3
unless current_user.received_replies.unread.empty?
  # ...
end

或者,如果你有ifelse,开关的情况下(因为一个unless/elseiChange):

1
2
3
4
5
if current_user.received_replies.unread.empty?
  # ...
else
  # ...
end

我使用:

1
if current_user.received_replies.unread.any?

从文档:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
= Array.any?

(from ruby core)
=== Implementation from Enumerable
------------------------------------------------------------------------------
  enum.any? [{|obj| block } ]   -> true or false

------------------------------------------------------------------------------

Passes each element of the collection to the given block. The method returns
true if the block ever returns a value other than false or nil. If the block
is not given, Ruby adds an implicit block of {|obj| obj} (that is any? will
return true if at least one of the collection members is not false or nil.

       %w{ant bear cat}.any? {|word| word.length >= 3}   #=> true
       %w{ant bear cat}.any? {|word| word.length >= 4}   #=> true
       [ nil, true, 99 ].any?                            #=> true


这可能是一个小位。

1
unless current_user.received_replies.unread.empty?