我想计算数组中的真值对象。因为我可以通过一个块来算,我找到了最习惯的方法是这样的:计算数组中的真值对象
但是,我不知道是否有更好的方法尤其是使用语法count(&:something)
因为路过此地全块的样子矫枉过正给我。
AFAIK,在Ruby中没有truthy?
方法,所以我找不到如何实现这个。
我想计算数组中的真值对象。因为我可以通过一个块来算,我找到了最习惯的方法是这样的:计算数组中的真值对象
但是,我不知道是否有更好的方法尤其是使用语法count(&:something)
因为路过此地全块的样子矫枉过正给我。
AFAIK,在Ruby中没有truthy?
方法,所以我找不到如何实现这个。
使用Ruby> = 2.2,你可以使用Object#itself
:
[1, nil, 'foo', false, true].count(&:itself)
#=> 3
Ruby 2.2.0也这样做... https://ruby-doc.org/core-2.2 .0/Object.html#method-i-itself – lcguida
试试这个:
[1, nil, 'foo', false, true].count(true)
这只计算'true'对象。我们的目标是统计所有的真实物体(即'1'和''foo''也应该算在内。) – Mat
你是对的,谢谢 –
只是出于好奇,人们可能会计算''falsey's量[1,无,'foo',false,true] .count(&:!)',并将其从原始数组的大小中减去:) – mudasobwa