我对如何使用该sort_by
方法感到困惑。我该如何重新排列:
@final_leaderboard = {
"Patriots" => {"Win"=>3, "Loss"=>0},
"Broncos" => {"Win"=>1, "Loss"=>1},
"Colts" => {"Win"=>0, "Loss"=>2},
"Steelers" => {"Win"=>0, "Loss"=>1},
}
产生这个:
Patriots 3 0
Broncos 1 1
Steelers 0 1
Colts 0 2
到目前为止,我有这段代码,但它被颠倒了,损失值不正确。我要做的是首先按获胜条件排序。获胜最多的球队将在@final_leaderboard 哈希中的第一个项目,其次是野马队以 1 场胜利,然后是钢人队和小马队。但是,我也想按损失排序。例如,我希望钢人队被列为@final_leaderboard 哈希中的第三项,因为它有一个损失,而小马队有两个损失。
@final_leaderboard = @final_leaderboard.sort_by do |key,value|
value["Loss"] <=> value["Win"]
end
上面的代码片段将产生以下输出:
Patriots 3 0
Broncos 1 1
Colts 0 2
Steelers 0 1
最后两项不正确,但我不知道代码片段中需要更改哪些内容才能逆转 Steelers 和 Colts。我不熟悉 sort_by 方法,并且 Ruby Docs 上的 sort_by 方法示例/说明没有像其他方法那样的可视化示例,所以我不太确定如何使用它。如果有人可以向我解释如何对最后两项进行排序,我将不胜感激。谢谢你。