inject
を使用して、この配列から上位 2 つの値を取得しようとしています。
a = [1, 2, 5, 7, 4, 9, 2]
b = a.inject(Array.new(2) {0}) {|r, e|
if e > r[0]
r[1] = r[0]
r[0] = e
end
}
'block in <main>': undefined method '[]' for nil:NilClass (NoMethodError)
しかし、私は行でエラーが発生し続けますr[1] = r[0]
からの最大値と2 番目r[0]
に大きい値を表すように変更するにはどうすればよいですか? それとも、より良い、よりルビーに似た方法がありますか?a
r[1]