Ruby - test each array element, get one result
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?
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