Ruby ::数组#计数

有没有想过Ruby的 count 方法有多少功能?除了计算数组的元素之外,它还可以做很多很棒的事情。因此,让我们从最常见的用例开始:计算数组的元素。

irb> numbers = [1,2,5,3,6,2,5,3]
 => [1, 2, 5, 3, 6, 2, 5, 3]
irb> numbers.count
 => 8

假设您要计算数字3在数组中表示的频率。您可以使用循环遍历数组,并在每次看到数字3时增加一个计数器,但是有更好的方法……只需将您要查找的对象传递给该 count 方法!

irb> numbers = [1,2,5,3,6,2,5,3]
 => [1, 2, 5, 3, 6, 2, 5, 3]
irb> numbers.count(3)
 => 2

最后,您还可以传递一个块来执行更复杂的计数。

irb> numbers = [1,2,5,3,6,2,5,3]
 => [1, 2, 5, 3, 6, 2, 5, 3]
irb> numbers.count(&:even?)
 => 3

上面的方法基本上是的简写 numbers.count{|n| n.even?}。

更多信息:
  • Ruby Doc – Array#count

  • Symbol#to_proc 方法