2016-04-02 8 views
-1

私は配列を知っています。私は最初の赤を落として2番目を残すために次のことができます。ハッシュに相当するものはありますか?ハッシュのためのdrop_whileと同等のRubyメソッドがありますか?

​​

私が過去の質問から思いつくことができる最高のものは次のとおりですが、それはうまくいきません。

colors = { 
     first: "red", 
     second: "yellow", 
     third: "green", 
     fourth: "red" 
} 
colors.delete_if{|k,v| v.length < 4 ? true : break } 
+0

は、新しいRubyのハッシュがあるにもかかわらず、これは本当に情報/診断目的以外では使用すべきではない、「ソフト/挿入が命じました」。そのため、キーの順序付けを確立または依存する操作は公開されません(間違いなく、反復の場合を除く)。 1つは*ハッシュ - >キー値配列 - > x_while - >ハッシュですが、ハッシュが目的のタスクの適切な構造ではないことを示すこともあります。 – user2864740

+0

@ user2864740、私は違います。私はRubyのキー挿入順序の整備をうまく使いました。私の答え[ここ](http://codereview.stackexchange.com/questions/40776/number-to-words-problem#21293260)がその一例です。 –

+0

'drop_while'だけで何が問題になっていますか? –

答えて

1
colors.drop_while { |_, v| v.length < 4 } 
+0

'Enumerable#drop_while'があることを知りませんでしたので、' Hash#drop_while'を作成していました。言うまでもなく、私はその努力を断念しました。 :-) –

+0

@CarySwovelandあなたは常により効率的で、ファンシーで新車のようなものかもしれません:) – mudasobwa

関連する問題