我的数据如下:
[{
level: 0,
data: 'A',
}, {
level: 1,
data: 'B',
}, {
level: 1,
data: 'C',
}, {
level: 2,
data: 'D',
}, {
level: 3,
data: 'E',
}, {
level: 1,
data: 'F',
}]
可视化为:
A
B
C
D
E
F
我想将其转换为:
{
data: 'A',
children: [{
data: 'B',
}, {
data: 'C',
children: [{
data: 'D',
children: [{
data: 'E',
}]
}]
}, {
level: 1,
data: 'F',
}]
}
通过level
将项目有效地转换为树。只有一个顶级元素。
我真的不知道该怎么做。我想我想要一些基于堆栈的解决方案,但我还没有设法解决它。
答案 0 :(得分:0)
var stack = [];
for (var i = 0; i < items.length; i++) {
var item = items[i];
var toAdd = {
data: item.data,
children: []
};
stack[item.level] = toAdd;
if(item.level > 0)
stack[item.level - 1].children.push(toAdd);
}
var tree = stack[0];
console.log(tree);