Question

I want a one-liner to return true/false, that tests each element in an array for whether it's an Integer or not. So if any element in the array is not an Integer, it should return false, else true. Here's my try:

>> ([2,1,4].map {|x| (x.is_a? Integer)}).reduce {|x, result| x and result}
=> true
>> ([2,"a",4].map {|x| (x.is_a? Integer)}).reduce {|x, result| x and result}
=> false

Any other ideas to distill it down further?

Was it helpful?

Solution

array.all?{ |x| x.is_a? Integer }

OTHER TIPS

ary.all?(&Integer.method(:===))
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top