如何对数组的所有元素执行布尔运算并将结果混合在一起



我想ANDOR数组中的所有元素,但需要一些控制,如通过散列元素选择所示。以下是我希望实现的行为:

a = [{:a => true}­, {:a => false­}]
a.and_map{ |hash_element| hash_element[:a] }
#=> false
a.or_map{ |hash_element| hash_element[:a] }
#=> true

Ruby中有没有一种巧妙、干净的方法可以做到这一点?

您可以使用all?any?

a = [{:a => true}, {:a => false }]
a.any? { |hash_element| hash_element[:a] }
#=> true
a.all? { |hash_element| hash_element[:a] }
#=> false
a = [{:a => true}­, {:a => false­}]
a.all?{ |elem| elem[:a] }
a.any?{ |elem| elem[:a] }

最新更新