0

キーとして都市名のハッシュがあり、値として対応するインデックスがあります。

"Los Angeles" => 2.5
"San Francisco" => 3.6
"San Diego" => 2.4
.
.
.

次に、ハッシュを値で並べ替えたいので、次のようになります。

"San Diego" => 2.4    
"Los Angeles" => 2.5
"San Francisco" => 3.6
.
.
.

そして、ハッシュ全体の各ハッシュエントリのランキングを取得する必要があります。例でロサンゼルスの場合、2が返されます。

助言がありますか?

4

2 に答える 2

4

試すsort_by{|k,v| v}

cities = {"Los Angeles" => 2.5, "San Francisco" => 3.6, "San Diego" => 2.4 }
cities.sort_by {|key, value| value}

その時、インデックスがランクになります(私は推測します)

于 2012-09-24T23:41:46.567 に答える
-1

これにより、特定の都市のランキングが表示されます。

cities.keys.sort.index("Los Angeles") + 1
  #=> 1 

インデックスは0から始まるので、答えに1を追加して、1から始まるランキングを付けました。

于 2012-09-25T03:13:31.353 に答える