2012-08-14 155 views
-1

刪除我有一個被賦予了特定的選項的方法散列這樣查找散列和紅寶石

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'} 

所以,應該從哈希中刪除找到的值。這樣做的好方法是什麼?

+0

這混亂給我你的要求。你說你想用散列中的某些鍵創建一個字符串,但是你給出的例子字符串只包含散列中的值。另外,還不清楚管道('|')的含義在你的字符串中。 – 2012-08-14 05:25:21

+0

對不起。我的意思是價值觀。管道應該是在字符串中,它只是另一個字符。我不知道爲什麼downvote。 – 2012-08-14 05:31:01

+2

這兩者太平凡,太局部。 – meagar 2012-08-14 05:33:16

回答

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"}