可以说我有一个散列中的数字@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