gpt4 book ai didi

ruby - 按另一个散列中的值对散​​列进行排序

转载 作者:数据小太阳 更新时间:2023-10-29 08:28:14 25 4
gpt4 key购买 nike

我想按照 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com