【发布时间】:2017-05-28 12:41:47
【问题描述】:
与this question 非常相似,但在 Ruby 中。
我有一个嵌套哈希(下面是一个非文字示例),我有一个指向我最深的子值的数组:
ab0:
ad1:
ab0:
ad1: {}
ad1:
ab0:
ad1:
ab0: {}
指向最后一个键“ab0”的数组是[1,0,0,0]。我想用这个数组通过指向hash[1][0][0][0]来遍历hash。
我将希望使用它来获取相关孩子的路径上使用的每个密钥。我的结果应该是:
keysUsed(hash, [1,0,0,0]) = [hash.keys[1], hash.keys[1].keys[0], hash[1].keys[0].keys[0]]
【问题讨论】:
-
您的哈希不是有效的 Ruby 代码。另外,为什么
hash.keys[1]指的是:ab0而不是:ad1? -
也许你可以选择一个不同的示例哈希,重复的键名会很混乱。
-
为什么最后一个
0被忽略了?最后不应该有hash[1].keys[0].keys[0].keys[0]吗?键也是散列吗? -
最后但同样重要的是:您的预期结果是什么?对于
[1,0,0,0]的输入,您给出了一个包含 3 个(为什么?)元素的数组:hash.keys[1]、hash.keys[1].keys[0]和hash[1].keys[0].keys[0],但只有第一个元素会产生结果。也许第二个元素应该是hash[hash.keys[1]].keys[0]?请澄清。 -
链接问题从数组创建嵌套哈希。如果我理解正确,你想要的正好相反。我什至不确定,因为你的标题也描述了你的问题的反面。
标签: arrays ruby pointers hash nested