Javascript 将展平数组转换为不包含任何父级信息的父子数组
我在将扁平数组转换为树节点/父子格式数组时遇到了一个问题,我曾想过使用递归解决方案,但我仍然不知道如何实现它。最好的方法是将列表分组,这是从对象项中操作字符串代码的唯一方法。比如Javascript 将展平数组转换为不包含任何父级信息的父子数组,javascript,arrays,object,tree,flatten,Javascript,Arrays,Object,Tree,Flatten,我在将扁平数组转换为树节点/父子格式数组时遇到了一个问题,我曾想过使用递归解决方案,但我仍然不知道如何实现它。最好的方法是将列表分组,这是从对象项中操作字符串代码的唯一方法。比如01.05 | | 01.05.011 | | 01.05.011.0001 | | 01.05.011.0002 | | | 01.05.011.0003我的目标就是要将这些代码转换成这样: { code: 01, child: [ code : 05, child: [{
01.05 | | 01.05.011 | | 01.05.011.0001 | | 01.05.011.0002 | | | 01.05.011.0003
我的目标就是要将这些代码转换成这样:
{
code: 01,
child: [
code : 05,
child: [{
code: 011,
child: [
{
code: 0001,
child:[]
},
{
code: 0002,
child:[]
},
{
code: 0003,
child:[]
}
]
}]
]
}
如何解决此问题?您可以按点拆分字符串,并将每个部分作为嵌套结构的新级别
var数组=['01.05','01.05.011','01.05.011.0001','01.05.011.0002','01.05.011.0003'],
结果=数组。减少((r,s)=>{
s
.split(“.”)
.reduce((子项,代码)=>{
var temp=children.find(o=>o.code==code);
if(!temp)children.push(temp={code,children:[]});
返回临时儿童;
},r);
返回r;
}, []);
控制台日志(结果)代码>
。作为控制台包装{最大高度:100%!重要;顶部:0;}