如何使用键数组获取哈希值?

时间:2016-04-06 20:16:04

标签: ruby

我想使用包含键的数组获取哈希的所有值?

我有这个哈希:

docker-engine

我有一个数组:

{:id=>402, :email=>"tyson@ledner.name", :organizations_count=>0, :username=>"admin"}

所以我想得到一个

数组
[:id, :email]

是否有切割方法可以做到这一点?我有一个循环,但我觉得ruby可以用“oneliner”的方式做到这一点,但可以弄清楚如何做到这一点。

1 个答案:

答案 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)相同