前端需要一棵树,但是后端传来这种数据:
首先分析,有root根节点,和各种孩子节点的数组组成的对象。
主要用到对象的遍历方法,数组的遍历方法,对象属性添加 。
解析思路:
1、首先找到根节点。
2、遍历对象找到根节点的子节点。
3、递归查找子节点的子节点。
4、形成一棵新的层级的树形结构。
代码实现:
//找到根节点
appenddata(object) { //object就是初始的数据
let root = object.root[0];
for (let item in object) {
if (item == root.factorid) {
root.children = object[item];
this.recursion(object[item], object); //调用递归形成自己的孩子节点
}
}
// return root; //返回树形结构的层级数据
console.log(root);
},
//递归实现子节点的查询和添加
recursion(item, object) {
for (let j = 0; j < item.length; j++) {
for (let a in object) {
if (item[j].factorid == a) {
item[j].children = object[a];
this.recursion(object[a], object);
}
}
}
return item;
}