我想使用包含键的数组获取哈希的所有值?
我有这个哈希:
docker-engine
我有一个数组:
{:id=>402, :email=>"tyson@ledner.name", :organizations_count=>0, :username=>"admin"}
所以我想得到一个
数组[:id, :email]
是否有切割方法可以做到这一点?我有一个循环,但我觉得ruby可以用“oneliner”的方式做到这一点,但可以弄清楚如何做到这一点。
答案 0 :(得分:2)
您应该使用Hash#values_at
:
hash = {:id=>402, :email=>"tyson@ledner.name", :organizations_count=>0, :username=>"admin"}
array = [:id, :email]
hash.values_at(*array)
#=> [402, "tyson@ledner.name"]
在这种情况下,使用splat运算符(*)作为参数传递数组与仅hash.values_at(:id, :email)
相同