2014-03-27 28 views
1

創建的字符串有一個哈希{'results' => [], 'snow' => [], 'ham' => [], 'plow' => [] }動態Ruby中

,我要動態地構建一個字符串(鍵可以改變),它具有所有的按鍵,但不包括「結果」,它看起來像這樣"snow + ham + plow"

我該怎麼做?

+0

是的,你說得對,我是用Python語法,我將修改後,並修復它 – appleLover

回答

3

使用Hash#keys拿到鑰匙,Array#reject拒絕 「成果」 之一,Array#join將它們連接成一個字符串:其他

hash.keys.reject { |k| k == "results" }.join(" + ") 
3

兩種方式(#1是我的偏好):

h = {'results' => [], 'snow' => [], 'ham' => [], 'plow' => [] } 

#1

(h.keys - ['results']).join(' + ') #=> "snow + ham + plow" 

#2

a = h.keys 
a.delete('results') 
a.join(' + ') #=> "snow + ham + plow" 
+3

好,沒有明確列舉。 'Array#delete'和'Array.join'都必須在後臺迭代。 – Chuck

+0

好點,@Chuck。不否認這一點。 (也適用於'keys'。)編輯。讀者:以前我說過「沒有迭代:」。 –

+0

+1#1解決方案。 –