作者热门文章
- xml - AJAX/Jquery XML 解析
- 具有多重继承的 XML 模式
- .net - 枚举序列化 Json 与 XML
- XML 简单类型、简单内容、复杂类型、复杂内容
"BA", "two"=>"AAB"}, {"one"=>"AA", "two"=>"BBA"}, {"one"=>"AA", "-6ren">
给定以下哈希数组:
values = [
{"one"=>"BA", "two"=>"AAB"},
{"one"=>"AA", "two"=>"BBA"},
{"one"=>"AA", "two"=>"BCB"},
{"one"=>"AA", "two"=>"ABA"},
{"one"=>"BC", "two"=>"AAC"},
{"one"=>"AC", "two"=>"AAB"},
{"one"=>"AC", "two"=>"AAA"},
{"one"=>"AB", "two"=>"BCC"}
]
如何获得以下输出:
{"one"=>"BC", "two"=>"AAC"}
{"one"=>"BA", "two"=>"AAB"}
{"one"=>"AC", "two"=>"AAA"}
{"one"=>"AC", "two"=>"AAB"}
{"one"=>"AB", "two"=>"BCC"}
{"one"=>"AA", "two"=>"ABA"}
{"one"=>"AA", "two"=>"BBA"}
{"one"=>"AA", "two"=>"BCB"}
如果两个键值都指向整数,我可以很容易地做到这一点:
multi_sort = values.sort_by { |x| [-x["one"], x["two"] ] }
使用字符串值执行此操作的语法是什么?
最佳答案
您可能需要编写完整的sort
方法:
values.sort { |a,b| a["one"] == b["one"] ? a["two"] <=> b["two"] : b["one"] <=> a["one"] }
请注意,比较顺序是 b
vs a
表示“one”,a
vs b
对于“两个”。
如果您使用符号键而不是字符串,这可能会更简洁。
关于ruby - Ruby 散列上的多字符串元素排序,第一个键降序,第二个键升序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12820941/
我是一名优秀的程序员,十分优秀!