我有数组a = [-1,-2,-3,-4]
和b = [-1,-2,-3,4]
如何确保a
仅包含负整数?
我可以检查一些元素是否为a.select(&:negative?) == true
和b.select(&:negative?) == true
但我需要知道b.select(&:negative?).only == true
答案 0 :(得分:14)
您可以在此处使用Enumerable#all?
:
[-1,-2,-3,-4].all?(&:negative?)
#=> true
是的,我认为你对这里发生的事情感到困惑:
a.select(&:negative?) == true
这不是检查所有元素是否为负数。事实上,将结果的负数数组与false
:
[-1,-2,-3,-4] == false
当然,它始终会返回false
,因为只有false
等于false
。
答案 1 :(得分:6)
您可以简单地考虑最大值:
arr = [-1,-2,-3,-4]
arr.empty? ? false : arr.max < 0
#=> true
如果数组只包含整数。如果数组可能包含非整数的元素,则必须首先确认只存在整数。
arr = [-1,-2,-3,-4, "cat", { a:1 }]
return false unless arr.all? { |e| e.is_a?(Fixnum) }
#=> false returned