初学者在这里.我的第一个问题.放轻松我.
给出以下哈希:
pets_ages = {"Eric" => 6, "Harry" => 3, "Georgie" => 12, "Bogart" => 4, "Poly" => 4,
"Annie" => 1, "Dot" => 3}
Run Code Online (Sandbox Code Playgroud)
并运行以下方法:
pets_ages.sort {|x, y| x[1] <=> y[1]}.to_h
Run Code Online (Sandbox Code Playgroud)
返回以下内容:
{
"Annie" => 1,
"Dot" => 3,
"Harry" => 3,
"Poly" => 4,
"Bogart" => 4,
"Eric" => 6,
"Georgie" => 12
}
Run Code Online (Sandbox Code Playgroud)
您会注意到散列很好地按照预期的值排序.我想改变的是键的排序,以便在打平时保持字母顺序.注意"Dot"和"Harry"在这方面是正确的,但由于某种原因,"Poly"和"Bogart"不是.我的理论是,它在绑定的情况下按长度自动排序键,而不是按字母顺序排序.我怎么能改变呢?