次の irb での 2 つの操作をみてください。
ruby
1$ irb
2irb(main):001:0> h = {"友人のために購入し、大変気に入ってもらえました"=>0.5, "スマートなデザイン"=>1.0, "タブレットをしっかり保護してくれます"=>1.0, "と ても便利です"=>1.0, "値段が高い"=>-1.0}
3=> {"友人のために購入し、大変気に入ってもらえました"=>0.5, "スマートなデザイン"=>1.0, "タブレットをしっかり保護してくれます"=>1.0, "とても便利です"=>1.0, "値段が高い"=>-1.0}
4
5irb(main):002:0> max_v = h.values.max
6=> 1.0
7
8irb(main):003:0> bests = h.select{|k,v| v == max_v}
9=> {"スマートなデザイン"=>1.0, "タブレットをしっかり保護してくれます"=>1.0, "とても便利です"=>1.0}
10
11irb(main):004:0> bests.keys
12=> ["スマートなデザイン", "タブレットをしっかり保護してくれます", "とても便利です"]
ruby
1irb(main):027:0> bests = h.group_by{|k,v| v}
2=> {0.5=>[["友人のために購入し、大変気に入ってもらえました", 0.5]], 1.0=>[["スマートなデザイン", 1.0], ["タブレットをしっかり保護してくれます", 1.0], ["とても便利です", 1.0]], -1.0=>[["値段が高い", -1.0]]}
3
4irb(main):028:0> bests = h.group_by{|k,v| v}.max
5=> [1.0, [["スマートなデザイン", 1.0], ["タブレットをしっかり保護してくれます", 1.0], ["とても便利です", 1.0]]]
6
7irb(main):029:0> bests = h.group_by{|k,v| v}.max[1]
8=> [["スマートなデザイン", 1.0], ["タブレットをしっかり保護してくれます", 1.0], ["とても便利です", 1.0]]
9
10irb(main):030:0> bests = h.group_by{|k,v| v}.max[1].to_h
11=> {"スマートなデザイン"=>1.0, "タブレットをしっかり保護してくれます"=>1.0, "とても便利です"=>1.0}
12
13irb(main):031:0> bests = h.group_by{|k,v| v}.max[1].to_h.keys
14=> ["スマートなデザイン", "タブレットをしっかり保護してくれます", "とても便利です"]
1番目の方法: values の max を求る。 hash からその値のものを取り出す。
2番目の方法: value で分類して max を求める。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。