ruby-on-rails – Ruby / RoR – 计数数组中元素的出现

我是一个哈希

{1 => true,7 => false,6 => true,4 => false}

或类似的数组

[1,true],[7,false],[6,[4,false]]

要么

[真,假,真,假].

我如何找到数组中的trues数?

解决方法

为了计算元素,你显然必须遍历这个集合.由于迭代Hash会产生两个元素的数组,前两个实际上完全相同:
{ 1 => true,4 => false }.count(&:last)
[[1,false]].count(&:last)

对于简单的Array案例,您可以执行以下操作:

[true,false,true,false].count(true)

这个数组当然也和上面的哈希值的哈希值相同,所以你可以使用相同的方法

{ 1 => true,4 => false }.values.count(true)

如果你不知道你会得到哪一个,你可以使用这样的东西:

{ 1 => true,4 => false }.flatten.count(true)
[[1,false]].flatten.count(true)
[true,false].flatten.count(true)

相关文章

validates:conclusion,:presence=>true,:inclusion=>{...
一、redis集群搭建redis3.0以前,提供了Sentinel工具来监控各...
分享一下我老师大神的人工智能教程。零基础!通俗易懂!风趣...
上一篇博文 ruby传参之引用类型 里边定义了一个方法名 mo...
一编程与编程语言 什么是编程语言? 能够被计算机所识别的表...
Ruby类和对象Ruby是一种完美的面向对象编程语言。面向对象编...