我可以使用Array#count计算一个值.
numbers = [1,2,5,1,3,4,3] numbers.count(1) #=> 3
如何计算数组中的多个值?
我写的是:
numbers.count(1) + numbers.count(2) #=> 5 [1,2].map{|i| numbers.count(i)}.sum #=> 5
我认为这些有点多余.
解决方法
count
也可以占用一个块,所以你可以用一次只遍历数组的方式写一次:
numbers.count {|i| [1,2].include? i } # => 5
或者为了好玩,功能稍强/ point-free风格:
numbers.count &[1,2].method(:include?) # => 5