配列とハッシュがあります
L = [] H = {3=>"a", 2=>"b", 1=>"c"}
したがって、キーを繰り返し処理して、要素が発生する回数 n を取得し、その要素を配列に n 回追加します。
結果
L = ['a', 'a', 'a', 'b', 'b', 'c']
これをinject(またはRubyコードでよく見かける他の方法)で書く良い方法は何ですか?
array = hash.flat_map { |k,v| [v]*k }
@Davidの答えは、あなたのニーズにぴったりです。ただし、一般に、次のいずれかを使用して、オブジェクトoを既存の配列にn回追加できます。
# Modify the array in-place, or…
my_array.concat( [o]*n )
# …alternatively create a new modified array
new_array = my_array + [o]*n