2016-04-06 18 views
0

Anahtar içeren bir dizi kullanarak tüm hash değerini almak istiyorum?Bir anahtar dizisi kullanarak hash değerlerini nasıl alabilirim?

bu karma vardır: yapmak için bir satır yol

[:id, :email] 

yüzden

["402", "[email protected]"] 

dizisini almak isteyen var mı:

{:id=>402, :email=>"[email protected]", :organizations_count=>0, :username=>"admin"} 

Ben bir dizi var bu? Bir döngüye sahibim ama yakutun bunu bir “oneliner” şekilde yapabileceğini hissediyorum ama bunu nasıl yapacağımı anlayabiliyorum.

cevap

2

Sen Hash#values_at kullanmalısınız: Bu durumda argüman olarak uyarısı operatörü (*) ile dizi Geçme

hash = {:id=>402, :email=>"[email protected]", :organizations_count=>0, :username=>"admin"} 
array = [:id, :email] 
hash.values_at(*array) 
#=> [402, "[email protected]"] 

sadece hash.values_at(:id, :email)

+0

kolayca bu bulamadınız mı, denerim aynıdır –

İlgili konular