Ruby - проверить каждый элемент массива, получить один результат - PullRequest
11 голосов
/ 05 октября 2010

Я хочу, чтобы однострочник возвращал true / false, который проверяет каждый элемент в массиве на предмет того, является ли он целым или нет.Таким образом, если какой-либо элемент в массиве не является целым числом, он должен вернуть false, иначе true.Вот моя попытка:

>> ([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

Какие-нибудь другие идеи, чтобы отогнать это дальше?

Ответы [ 2 ]

19 голосов
/ 05 октября 2010
array.all?{ |x| x.is_a? Integer }
5 голосов
/ 05 октября 2010
ary.all?(&Integer.method(:===))
...