在hash中查找并在Ruby中删除

时间:2012-08-14 05:18:28

标签: ruby hash

我有一个方法,给出了像这样的特定选项哈希

def send_params(options = {})
 #Create string of some values in the hash.
end

我想创建一个字符串,其中一些值在哈希中。特别是我正在寻找键:key1,:key2,:key3,:key4来创建一个具有相应值的字符串。所以,如果我的哈希是这样的:

{:key1 => 'value1', :key2 => 'value2', :key3 => 'value3', :key4 => 'value4', , :key5 => 'value5'}

我希望能够创建一个字符串,如:

'value1,value2|value3,value4' 

将剩余的哈希值设为:

{:key5 => 'value5'}

因此,应该从散列中删除找到的值。这样做的好方法是什么?

1 个答案:

答案 0 :(得分:2)

Hash#delete可能正是您要找的。 它将从散列中删除键/值对并返回值。

示例:

h = {
  :key1 => 'value1',
  :key2 => 'value2',
  :key3 => 'value3',
  :key4 => 'value4',
  :key5 => 'value5'
}
str = "#{h.delete :key1},#{h.delete :key2}|#{h.delete :key3},#{h.delete :key4}"
p str # => "value1,value2|value3,value4" 
p h   # => {:key5=>"value5"}