在Ruby 1.8.6中统计数组中某个值的实例数量

14

以下代码可以在Ruby 1.8.7中正常工作,但在1.8.6中不行。我可以使用什么替代方法来解决这个问题?

x = [3,4,5,6,7,78,4,3,2,5,5,3]
x.count(3)
=> 3

由于在1.8.6版本的数组中没有count方法,所以我遇到了这个错误。这个版本中是否有类似的方法?

3个回答

20
x = [3,4,5,6,7,78,4,3,2,5,5,3]
x.grep(3).size
#=> 3

11
count = x.select {|e| e == 3}.size

1
如果更容易记忆,find_allselect 的别名 - 或者也可以说 selectfind_all 的别名。无论如何,在这里两者都能很好地工作。 - Telemachus
我曾经经常混淆 Groovy 中的 select 和 findAll。所以,如果你使用多种动态语言,请尽量坚持一种 :) - Geo


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接