Есть ли способ реорганизовать этот метод с помощью карты? (это намерение этого метода состоит в том, чтобы вернуть массив простых чисел между 1 и максимальным параметром)
def primes(max)
prime_arr = []
(1..max).each {|i| prime_arr << i if is_prime?(i)}
prime_arr
end
is_prime?(val) возвращает значение true или false.
если я изменю свой метод на:
def primes(max)
(1..max).map {|i| i if is_prime?(i)}
end
Возвращаемый массив имеет нулевое значение при сбое блоков кода.
p primes(5)
#=> [1, 2, 3, nil, 5]
Я знаю, что у меня работает, но я бы предпочел не объявлять массив и не возвращать массив, если есть лучший способ сделать это.