一千萬個為什麽

搜索

在紅寶石中查找散列中的最低和最高值

我有以下哈希

hash = {"CLIENT1"=>"12.89", "CLIENT2"=>"14.36", "CLIENT3"=>"12.57", "CLIENT4"=>"11.02", "CLIENT5"=>"12.53", "CLIENT6"=>"12.49", "CLIENT7"=>"12.32", "CLIENT8"=>"11.47", "CLIENT9"=>"13.60", "CLIENT10"=>"13.11", "CLIENT11"=>"8.43", "CLIENT12"=>"11.41", "CLIENT13"=>"11.06", "CLIENT14"=>"11.47", "CLIENT15"=>"6.53", "CLIENT16"=>"12.36", "CLIENT17"=>"11.86", "CLIENT18"=>"12.93", "CLIENT19"=>"11.54", "CLIENT20"=>"9.93"}

當我做 hash.values.max 時,我得到9.93 - 這是不正確的。 hash.values.min 也給我11.02的錯誤結果

任何人都可以告訴我什麽可能是錯的?如果我只對10個客戶端發出相同的命令,它就會按預期工作。

最佳答案

我將按照以下方式使用 #minmax_by 代碼> 方法: -

 min, max = hash.minmax_by { |_,v| v.to_f }.map(&:last)
 min # => "6.53"
 max # => "14.36"

轉載註明原文: 在紅寶石中查找散列中的最低和最高值