通过递归获取节点层级及本身信息,将树同级节点放入同一个数组
tableData: [ {
docname: "1",
doccode:'a',
id:1,
num:6,
children: [
{
docname:'1-1',
doccode:'b',
num:3,
fid:1,
id:2,
children: [
{
id:3,
fid:2,
docname:'1-1-1',
doccode:'b1',
},
{
id:4,
fid:2,
docname:'1-1-2',
doccode:'b2',
},
{
id:5,
fid:2,
docname:'1-1-3',
doccode:'b3',
}
]
},
{
docname:'1-2',
doccode:'c',
num:3,
children: [
{
docname:'1-2-1',
doccode:'c1',
},
{
docname:'1-2-2',
doccode:'c2',
},
{
docname:'1-2-3',
doccode:'c3',
}
]
}
]
}
],
怎么讲上述树形结构数据通过递归改为:
[
[
[1], [1-1, 1-2, ...],
[1-1-1, 1-1-2, ...],
[1-1-1-1, 1-1-1-2, ...],
],
[
[2], [2-1,2-2,...]
....
]
]
回答:
let tableData =[ {
docname: "1",
doccode:'a',
id:1,
num:6,
children: [
{
docname:'1-1',
doccode:'b',
num:3,
fid:1,
id:2,
children: [
{
id:3,
fid:2,
docname:'1-1-1',
doccode:'b1',
},
{
id:4,
fid:2,
docname:'1-1-2',
doccode:'b2',
},
{
id:5,
fid:2,
docname:'1-1-3',
doccode:'b3',
}
]
},
{
docname:'1-2',
doccode:'c',
num:3,
children: [
{
docname:'1-2-1',
doccode:'c1',
},
{
docname:'1-2-2',
doccode:'c2',
},
{
docname:'1-2-3',
doccode:'c3',
}
]
}
]
}
];
let getFieldVals=(list=[],key='',res=[])=>(res.push(list.map(item=>(item.children && getFieldVals(item.children,key,res),item[key]))),res);
getFieldVals(tableData,'docname').reverse();
0: ['1']1: (2) ['1-1', '1-2']
2: (3) ['1-2-1', '1-2-2', '1-2-3']
3: (3) ['1-1-1', '1-1-2', '1-1-3']
以上是 通过递归获取节点层级及本身信息,将树同级节点放入同一个数组 的全部内容, 来源链接: utcz.com/p/936175.html