小编Kyl*_*rtz的帖子

如何在按值对哈希进行排序时保留键的字母顺序

初学者在这里.我的第一个问题.放轻松我.

给出以下哈希:

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"不是.我的理论是,它在绑定的情况下按长度自动排序键,而不是按字母顺序排序.我怎么能改变呢?

ruby sorting hash key-value alphabetical

2
推荐指数
1
解决办法
1235
查看次数

标签 统计

alphabetical ×1

hash ×1

key-value ×1

ruby ×1

sorting ×1