作者热门文章
- xml - AJAX/Jquery XML 解析
- 具有多重继承的 XML 模式
- .net - 枚举序列化 Json 与 XML
- XML 简单类型、简单内容、复杂类型、复杂内容
我想按照 Hash1 值的顺序对 Hash2 的键进行排序。Hash2 不需要包含 Hash1 的所有值。Hash1 不需要包含 Hash2 的所有键。如果 Hash2 中存在的键在 Hash1 中没有相应的值,则它应该排在任何现有有序键的下方。
Hash1 = {
p0: "q11",
p1: "q55",
p2: "q92",
p3: "q77"
}
Hash2 = {
q55: {...},
q23: {...},
q59: {...},
q98: {...},
q11: {...}
}
=>
DesiredHash = {
q11: {...},
q55: {...},
q23: {...},
q59: {...},
q98: {...}
}
实现此目标的最像 Ruby 的方法是什么?
最佳答案
与@sawa 类似,但 Hash#values 的使用确实清理了恕我直言:
keys = Hash1.values.map &:to_sym
Hash[Hash2.sort_by{|k, v| keys.index(k) || keys.length}]
关于ruby - 按另一个散列中的值对散列进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12966659/
我是一名优秀的程序员,十分优秀!