私はルビーの配列のハッシュを次のように持っています:
@people = { "a" => ["john", "mark", "tony"], "b"=> ["tom","tim"],
"c" =>["jane"], "others"=>["rob", "ryan"] }
特定のキー値の配列に3つ未満のアイテムがあるすべてのキー値ペアをマージしたいと思います。それらを「その他」と呼ばれるキーにマージして、おおよその結果を得る必要があります。
@people = { "a" => ["john", "mark", "tony"],
"others"=> ["rob", "ryan", "tom", "tim", "jane"] }
次のコードを使用すると、ハッシュ内に重複するキー値が存在できないため、問題が発生します。
@people = Hash[@people.map{|k,v| v.count<3 ? ["others",v] : [k,v]} ] %>
これをエレガントに解決するための最良の方法は何ですか?