【发布时间】:2014-07-03 00:59:31
【问题描述】:
我有一个包含另一个哈希的哈希,我需要按如下方式排序:
data = {
"user": {
"name": "John",
"age": "36",
},
"company": "Terminal",
"country": "Canada",
}
{
"user": {
"name": "Mary",
"age": "32",
},
"company": "Brasco",
"country": "Italy",
}
使用这种方式我可以毫无问题地排序:
data.sort_by { |a| [a[:company], a[:country]] }
但如果“公司”和“国家”具有相同的值,我需要按第三个选项“名称”进行排序。
情况是我需要在最后使用'reverse'功能(我贴的例子不是真实情况,真实的太大了...lol)。
所以结果也是把名字倒过来排序了。
data.sort_by { |a| [a['company'], a['country'], a['user']['name']] }.reverse
我需要 DESC 中的“公司”和“国家/地区”排序以及 ASC 中的 user.name 排序。
【问题讨论】:
-
您能提供一个有效的输入吗?
标签: ruby-on-rails ruby sorting hash