@assortment
の数字がハッシュに含まれているとします。 1〜100です。 @assortment
の各番号は、:free
、または:used
のステータスを持つことができます。ハッシュを分割して複数の配列を作成する
例@assortment
は次のようになります。 {1 =>:無料、2 =>:無料、3 =>:使用等...}
は私がに基づいてアップ@assortment
を分割したいとしましょう数字を用い、それら自身ハッシュに無料番号を抽出する(またはアレイまたはハッシュ?)
例えば、1〜100の@assortment
ために、数字25および75「が使用される」と残りがあった場合'free'の場合、結果はすべての空き値の3つの新しいハッシュになります。
1 to 24
26 to 74
76 to 100
同様に、数字が1から100の異なるを持っていますが、数字20から80を抽出したいが、数字30,31,32および40を使用すると、結果は次のようになります。
hash1 -> 20 to 29
hash2 ->33 to 39
hash3 -> 41 to 80
私は番号の完全な@assortment
に渡すことができルビー、でこれを行うための良い機能的な方法、そしておそらく配列で、抽出したハッシュを取得するためのオプションの範囲がありますか?
私はあなたがハッシュをループにした場合は、すべての空き番号が新しいハッシュ(例えばHASH1)に追加されます
...オリジナルのハッシュが:used
要素に基づいて分割または分割ます推測あなたが使用された番号に達するまで。フリー・ナンバーに達するまでループを続けてください。これ以降のフリー・ナンバーはすべて新しいハッシュ(hash2)に追加されます。新しいハッシュのすべての自由な数字を持っているまで戻りに
サンプルデータをRuby形式で追加できますか?あなたの質問から、入力と出力が何であるかははっきりと分かりません。あなたは '{1 =>:無料、2 =>:中古、...}'のようなものを意味しますか? – tadman
はいそれはそのフォーマットであると仮定し、私は質問に追加します – user3437721
期待される出力フォーマットを追加すると、それは多く役立ちます。 – tadman