マップを使用してこのメソッドをリファクタリングする方法はありますか? (このメソッドの意図は、1 から max パラメータまでの素数の配列を返すことです)
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
コード ブロックが失敗した場合、返される配列には nil 値が含まれます。
p primes(5)
#=> [1, 2, 3, nil, 5]
私は自分が持っているものを知っていますが、配列を宣言せず、より良い方法がある場合は配列を具体的に返したいと思います