可以說我有一個散列中的數字@assortment
,例如, 1至100. @assortment
中的每個號碼可以具有:free
或:used
的狀態。通過分割散列創建多個陣列
一個例子@assortment
可以是: {1 =>:免費,2 =>:免費,3 =>:使用等...}
可以說,我想基於所述最多分裂@assortment
使用的數字,並提取遊離號碼到他們自己散列(或陣列或哈希?)
例如,對於爲1的@assortment
到100中,如果數字25和75分別「使用」和其餘均'free',那麼結果將是所有自由值的3個新哈希:
1 to 24
26 to 74
76 to 100
同樣,假設我們有一個不同的@assortmen
t,數字爲1到100,但我想提取數字20到80,但是使用數字30,31,32和40,則結果如下所示:
hash1 -> 20 to 29
hash2 ->33 to 39
hash3 -> 41 to 80
是否有一個很好的功能性的方式在Ruby中,在那裏我可以在號碼的完整@assortment
通過這樣做,和一個可選的範圍來提取和獲得所產生的哈希值,也許在一個數組?
我想原來的哈希被打散或者基於:used
元件分開......
如果通過哈希是循環,然後每一個免費電話號碼將被添加到一個新的哈希(如HASH1)直到你達到一個使用的數字。繼續循環直到你獲得一個空閒號碼,這個和所有後續的免費號碼被添加到一個新的散列(hash2)中。保持此下去,直到你把所有的免費電話號碼在新的哈希...
您可以添加一些Ruby格式的示例數據嗎?從你的問題來看,不清楚輸入和輸出是什麼。你的意思是像'{1 =>:free,2 =>:used,...}'? – tadman
是的,假設它是這種格式,我會加上 – user3437721
這個問題,並且添加預期的輸出格式,它有很大的幫助。 – tadman