我有像
这样的哈希hash = { 'burger': 2, 'kebab': 5, 'pizza': 10 }
我有一个像
这样的键的数组['burger', 'burger', 'pizza']
如何创建相应值的数组? inject
方法是将值数组加在一起的最佳方法吗?
答案 0 :(得分:4)
实际上,您甚至不需要准备密钥阵列。
hash.keys
hash.values
如果您只想按特定顺序排列某些值或值,那么
a = [:burger, :pizza]
hash.values_at(*a) # => [2, 10]
答案 1 :(得分:0)
您可以使用map
,因为您特别想要按特定顺序想要数组中特定键的值。否则,您可以使用hash.values
arr = ['burger', 'burger', 'pizza']
results = arr.map { |key| hash[key] }