【发布时间】:2018-08-07 08:46:45
【问题描述】:
我有以下数组:
[{text: "a", depth: 0},
{text: "b", depth: 1},
{text: "c", depth: 2},
{text: "d", depth: 1}]
我要解决的问题是采用扁平数组(上图)并根据每个元素的深度创建嵌套结构。我需要它嵌套的原因是递归地构建一个列表(有序或无序),我无法使用我拥有的数组。
以下内容以某种方式,塑造或形成所需的输出。我尝试创建的嵌套结构的总体思路应该更清晰。
{
text: "a",
depth: 0,
sublevel: [
{
text: "a",
depth: 1,
sublevel: [
{
text: "b",
depth: 2,
sublevel: []
}
]
},
{
text: "d",
depth: 1,
sublevel: []
}
]
}
【问题讨论】:
-
视情况而定;它是这样的已知格式,还是可以按任意顺序排列?如果是任意顺序,你如何确定它们应该嵌套在什么下面?我的意思是,鉴于您的特定输入和输出,这似乎很容易。
-
@DaveNewton 订单很重要。
-
@user3229073 注意
depth: 1是如何出现在预期的解决方案中的两次? ruby 中的哈希不能有重复的键,所以这是不可行的。 -
请求的输出无效 ruby: 子级别 1 上的哈希不能有两个或多个元素共享相同的键(在这种情况下为
:text。)也就是说,这个问题没有解决方案,因为它是声明。 -
现在您的示例输出与输入完全不匹配。
标签: arrays json ruby data-structures ruby-hash