arrays - 如何计算数组中的多个值

标签 arrays ruby

我可以使用 Array#count 计算一个值。

numbers = [1, 2, 5, 5, 1, 3, 1, 2, 4, 3]
numbers.count(1) #=> 3

如何计算数组中的多个值?

我写的是:

numbers.count(1) + numbers.count(2) #=> 5
[1,2].map{|i| numbers.count(i)}.sum #=> 5

我觉得这些有点多余。

最佳答案

count也可以取一个 block ,所以你可以用只遍历数组一次的方式来写:

numbers.count {|i| [1,2].include? i } # => 5

或者为了好玩,在一个稍微更实用的/point-free风格:

numbers.count &[1,2].method(:include?) # => 5

关于arrays - 如何计算数组中的多个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37200425/

相关文章:

javascript - 如何在嵌套数组中提取数组的属性

ruby - String#scan 无法捕获所有事件

ios - 无法在 CocoaPods 中找到规范

c - 如何检查输入何时超出二维数组列中的行?

ruby - 为什么这个Hash of arrays的size是0?

javascript - 使用reduce()将元素分割成数组

c - 在C中,是否必须传递字符数组名称才能更改字符串常量的字符?

ruby-on-rails - 表单中的 Button_to 标记关闭表单

ruby-on-rails - 设计路由错误

ruby - Mac High Sierra 上的 vim ruby​​ 不匹配