【发布时间】:2021-04-20 18:15:30
【问题描述】:
大家好,我有一个问题,我需要创建一个树形数据结构,我无法平衡它,我在互联网上尝试了一些脚本,但找不到解决方案,有人可以帮助我吗?
我有一个对象数组。
const data = [
{
id: 1111,
code: '1',
name: 'Item 1',
parent_code: '',
children: []
},
{
id: 11110,
code: '12',
name: 'Item 12',
parent_code: '1',
children: []
},
{
id: 99999,
code: '3',
name: 'Item 33',
parent_code: '',
children: []
},
{
id: 99992,
code: '114',
name: 'Item 114',
parent_code: '3',
children: []
},
{
id: 99993,
code: '115',
name: 'Item 115',
parent_code: '114',
children: []
},
];
我要怎么离开
const expectedData = [
{
id: 1111,
code: '1',
name: 'Item 1',
parent_code: '',
children: [
{
id: 11110,
code: '12',
name: 'Item 12',
parent_code: '1',
children: []
},
]
},
{
id: 99999,
code: '3',
name: 'Item 33',
parent_code: '',
children: [
{
id: 99992,
code: '114',
name: 'Item 114',
parent_code: '3',
children: [
{
id: 99993,
code: '115',
name: 'Item 115',
parent_code: '114',
children: []
},
]
},
]
},
]
我需要添加代码和父代码,我尝试了一些并得到了这个结果,但这不是我想要的
let parents = [];
data.forEach(d => {
if(!d.parent_code) {
d.children = data.filter(dt => dt.parent_code === dt.code);
parents.push(d);
}
});
console.log(parents);
结果是
const result = [
{
id: 1111,
code: '1',
name: 'Item 1',
parent_code: '',
children: [
{
id: 11110,
code: '12',
name: 'Item 12',
parent_code: '1',
children: []
},
]
},
{
id: 99999,
code: '3',
name: 'Item 33',
parent_code: '',
children: [
{
id: 99992,
code: '114',
name: 'Item 114',
parent_code: '3',
children: []
},
]
},
]
我无法进入第三级,请查看 parent_code 3
【问题讨论】:
标签: javascript data-structures tree