Ruby 以非常有效的方式从哈希中获取多个值

Ruby 以非常有效的方式从哈希中获取多个值,ruby,hash,Ruby,Hash,我的代码是 a={"1"=>"adi","2"=>"amar","3"=>"rave","4"=>"sum"} arr=["1","5","3"] 如果散列中存在数组值,我想提取所有这样的值 result =["adi","rave"] 不使用任何循环。是否可以执行以下操作: a.values_at(*arr).compact # => ["adi", "rave"] 您已更改结果,谢谢。现在,为将来的问题提供一个建议:不要给事物命名a或arr,为数据命名有

我的代码是

a={"1"=>"adi","2"=>"amar","3"=>"rave","4"=>"sum"}
arr=["1","5","3"]
如果散列中存在数组值,我想提取所有这样的值

result =["adi","rave"]
不使用任何循环。是否可以执行以下操作:

a.values_at(*arr).compact
# => ["adi", "rave"] 

您已更改
结果
,谢谢。现在,为将来的问题提供一个建议:不要给事物命名
a
arr
,为数据命名有意义的名称。@tokland Thx以供建议。请注意,splat运算符(
*
)将数组展开到堆栈中。所以,如果您的数组很大,可能会导致堆栈溢出