我有一个数组和一个哈希表
L = [] H = {3 => "a", 2 => "b", 1 => "c"}
我想迭代哈希表的键,以获取元素出现次数n,并将该元素n次附加到数组中
结果
L = ['a', 'a', 'a', 'b', 'b', 'c']
使用inject(或其他在Ruby代码中经常看到的方法)如何更好地编写此代码?
我有一个数组和一个哈希表
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 }
flat_map
,有什么事情是你做不到的吗? - Jörg W Mittagflat_map
。 - Andrew Marshall@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