话不多说,直接进入正题~
列表数据中字段如下:
[
{
id: 1,
text: '节点1',
parentId: 0 //这里用0表示为顶级节点
},
{
id: 2,
text: '节点1_1',
parentId: 1 //通过这个字段来确定子父级
}
...
]
我们预期的结果:
[
{
id: 1,
text: '节点1',
parentId: 0,
children: [
{
id:2,
text: '节点1_1',
parentId:1
}
]
}
]
先说一下实现的思路:
1、先把列表数据转成以id为key,节点本身为value的对象temp;
2、定义空列表treeData,然后遍历temp对象
2-1、如果当前节点不是顶级节点(parentId不为0),那找到以parentId作为key的节点,并把当前节点push到该节点的children中;
2-2、如果当前节点是顶级节点,只需把该节点push到treeData中,当temp遍历结束后,treeData就是最后的树型数据。
具体代码:
var temp = {};
var treeData = [];
for(var i=0; i<data.length; i+&