puts hash.select {|k| ary.include?(k) }.values
は、如何でしょう?
これは、
puts ary.map {|e| hash[e] }.compact
とは、すこし挙動が異なります。
x.rb
ary = ['あ','え']
hash = {'あ' => 'aaa','い' => 'iii','う' => 'uuu','え' => 'eee','お' => 'ooo'}
puts hash.select {|k| ary.include?(k) }.values
puts '---------'
puts ary.map {|e| hash[e] }.compact
puts '---------'
# 'え' => nil としている
hash = {'あ' => 'aaa','い' => 'iii','う' => 'uuu','え' => nil,'お' => 'ooo'}
puts hash.select {|k| ary.include?(k) }.values
puts '---------'
puts ary.map {|e| hash[e] }.compact
puts '---------'
実行結果:
$ ruby x.rb
aaa
eee
---------
aaa
eee
---------
aaa
---------
aaa
---------
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。