Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 平面数组内容表到嵌套数组_Javascript_Arrays_Algorithm_Recursion_Tableofcontents - Fatal编程技术网

Javascript 平面数组内容表到嵌套数组

Javascript 平面数组内容表到嵌套数组,javascript,arrays,algorithm,recursion,tableofcontents,Javascript,Arrays,Algorithm,Recursion,Tableofcontents,我有一系列标题,每个标题都有各自的深度。我正在尝试更改该数组的结构,以便标题包含其子元素 关于从平面数组生成嵌套数组,也有类似的问题和答案,但在我的情况下,这些项不知道它们的父项是什么。它们在数组中的位置包含此信息 这是我的非功能性尝试,但我怀疑它不需要太多时间就能工作: const标题=[ {depth:1,值:'I'}, {depth:2,值:'I.1'}, {depth:3,值:'I.1.a'}, {depth:3,值:'I.1.b'}, {depth:2,值:'I.2'}, {dept

我有一系列标题,每个标题都有各自的深度。我正在尝试更改该数组的结构,以便标题包含其子元素

关于从平面数组生成嵌套数组,也有类似的问题和答案,但在我的情况下,这些项不知道它们的父项是什么。它们在数组中的位置包含此信息

这是我的非功能性尝试,但我怀疑它不需要太多时间就能工作:

const标题=[
{depth:1,值:'I'},
{depth:2,值:'I.1'},
{depth:3,值:'I.1.a'},
{depth:3,值:'I.1.b'},
{depth:2,值:'I.2'},
{depth:1,值:'II'},
{深度:2,值:'II.1'},
{深度:2,值:'II.2'},
{深度:2,值:'II.3'},
{深度:3,值:'II.3.a'},
{深度:3,值:'II.3.b'},
{深度:2,值:'II.4'},
{深度:1,值:'III'},
{depth:1,值:'IV'},
];
常数结果=[
{深度:1,标题:“I”,标题:[
{深度:2,标题:“I.1”,标题:[
{深度:3,标题:'I.1.a'},
{深度:3,标题:'I.1.b'},
]},
{深度:2,标题:'I.2'},
]},
{深度:1,标题:“二”,标题:[
{深度:2,标题:'II.1'},
{深度:2,标题:'II.2'},
{深度:2,标题:“II.3”,标题:[
{深度:3,标题:'II.3.a'},
{深度:3,标题:'II.3.b'},
]},
{深度:2,标题:'II.4'},
]},
{深度:1,标题:'III'},
{深度:1,标题:'IV'},
];
常量解析=(值=[],回车=真)=>{
if(值.长度){
常量[{depth,value}={},next={},…rest]=值;
if(深度!==未定义的(&T){
返回[{
深度
标题:next.depth>depth?解析([next,…rest]):[],
价值
},…(next.depth日志(解析(标题))只是因为问题在我发布答案之前就结束了。@Taplar,这并不比重复的目标短…@NinaScholz shorter并不总是更好。@Taplar:不,当然不是。但是如果你把它与尼纳德或尼娜对重复问题的回答相比较,很明显,这些答案更简单。“越简单越好。@NinaScholz重复目标假设深度从0开始。就因为我还没来得及发布答案,问题就结束了。@Taplar,这并不比重复的目标短…@NinaScholz shorter并不总是更好。@Taplar:不,当然不是。但是如果你把它与尼纳德或尼娜对重复问题的回答相比较,很明显,这些答案更简单。“越简单越好。@NinaScholz重复目标假设深度从0开始。