【发布时间】:2013-01-03 22:50:38
【问题描述】:
我有一个这样的数组:
["Is", "Gandalf", "The", "Gray", "Insane"]
我想根据数组中键的位置对哈希进行排序。比如我想排序:
{:count=>21, "Is"=>19, "Gandalf"=>1, "Gray"=>0, "Insane"=>1, "The"=>5}
进入这个:
{"Is"=>19, "Gandalf"=>1, "The"=>5, "Gray"=>0, "Insane"=>1, :count=>21}
另一个例子是排序:
{:count=>3, "Is"=>11, "Insane"=>22, "Gray"=>0, "Gandalf"=>12, "The"=>2}
进入这个:
{"Is"=>11, "Gandalf"=>12, "The"=>2, "Gray"=>12, "Insane"=>22, :count=>3}
如何做到这一点?
【问题讨论】:
-
为什么要对哈希进行排序?哈希是随机访问数据结构,因此对键进行排序纯粹是装饰性的,绝对没有价值或访问速度的提高。换句话说,这是浪费时间。
-
我不是在寻找性能改进,我正在通过前端的哈希循环并对每个条目做一些事情(条目是问题中的那个哈希)。我需要它每次都以相同的顺序显示
-
解释前端发生了什么。照原样,您的请求有代码味道,如果您将数据发送到 Web 前端,请使用 JSON 对数据进行编码,将其发送到浏览器,让 JavaScript 将 JSON 解码回哈希,然后访问产生的哈希值正常。
-
@GandalfStormCrow,我的回答不会有帮助吗?这有什么问题?
-
为什么不直接遍历数组而不是哈希?