"c"} 通过b.invert我们可以很容易的得到结果 {"c"=>"b"} 那时我想到尝试一些非常酷的东西。假设我们有 a = {"a"=>{"b"=>"c"}} 什-6ren">
gpt4 book ai didi

ruby - 有哪些好方法可以反转嵌套哈希?

转载 作者:数据小太阳 更新时间:2023-10-29 07:44:51 24 4
gpt4 key购买 nike

假设我们有

b = {"b"=>"c"}

通过b.invert我们可以很容易的得到结果

{"c"=>"b"}

那时我想到尝试一些非常酷的东西。假设我们有

a = {"a"=>{"b"=>"c"}}

什么是制作此 {{"c"=>"b"}=>"a"} 的相当有效的方法(这里我们反转最内部的 hash并努力解决问题)

当然,最好将其扩展到 n 个散列值。我一直在寻找其他一些类似的问题,但没有找到。

谢谢。

最佳答案

这可以通过递归方法来反转散列的键(和值,如果需要的话)来完成。例如:

hsh = {{"c"=>"b"}=>"a"}
def recursive_invert(hsh)
hsh.each_with_object({}) do |(k, v), inverted_hsh|
if k.is_a? Hash
k = recursive_invert(k)
end
inverted_hsh[v] = k
end
end
recursive_invert(hsh) # {"a"=>{"b"=>"c"}}

关于ruby - 有哪些好方法可以反转嵌套哈希?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39127165/

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