我有一个散列,其中每个键对应于它的频率:
hsh = {'a' => 2, 'b' => 3, 'c' => 1}
Run Code Online (Sandbox Code Playgroud)
我想分解成一个数组:
arr = ['a', 'a', 'b', 'b', 'b', 'c']
Run Code Online (Sandbox Code Playgroud)
我使用以下方法工作正常,但是有更好的方法吗?
arr = []
hsh.each do |x,y|
y.times do
arr << x
end
end
Run Code Online (Sandbox Code Playgroud)
arr = hsh.flat_map { |k, v| [k] * v }
#=> ["a", "a", "b", "b", "b", "c"]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
68 次 |
| 最近记录: |