【发布时间】:2021-10-24 19:09:12
【问题描述】:
所以我有一个嵌套哈希,如下所示:
nested_hash = {
foo: foo,
bar: {
foo: foo,
bar: {
foo: foo,
bar: {
foo: bar
}
}
}
}
要访问不同级别的值,您可以使用多种方法,如下所示:
def one_level(key1)
nested_hash[key1]
end
def two_levels(key1, key2)
nested_hash[key1][key2]
end
def three_levels(key1, key2, key3)
nested_hash[key1][key2][key3]
end
但也许您需要像这样的一种方法:
def up_to_three_levels(key1, key2, key3)
if key1 && key2 && key3
nested_hash[key1][key2][key3]
elif key1 && key2
nested_hash[key1][key2]
else
nested_hash[key1]
end
end
这显然不理想,也无法扩展。如果我可以传递任意长度的数组以达到任意级别,那就太好了。有没有这样的方法?
(对于上下文:我要解决的问题是我需要将键路径作为参数并使用它从多个不同的数据结构中获取数据。)
【问题讨论】:
标签: arrays ruby nested hashmap keypaths