我是一个哈希
{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)