700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > mysql 父子维 将有父子关系的一维数组转换成树形结构(多维)数据

mysql 父子维 将有父子关系的一维数组转换成树形结构(多维)数据

时间:2019-12-01 02:25:32

相关推荐

mysql 父子维 将有父子关系的一维数组转换成树形结构(多维)数据

拉莫斯之舞

先来个函数注释 :/**

*将有父子关系的一维数组转换成树形结构(多维)数据

*console.log(JSON.stringify(setTreeData(data),null,2));

*============================================

*@param{*Array}data需要遍历的一维数组

*/再来具体的代码 :functionfnSetTreeData(data){vardata=[...data];vartree=data.filter((father)=>{varbranchArr=data.filter((child)=>{if(father.id==child.parentId)child._hasParent=true;returnfather.id==child.parentId;//MARK为什么这样写就报错?

//if(father.id==child.parentId)child._hasParent=true;

//returnchild._hasParent

});if(branchArr.length>0)father.children=branchArr;return!father._hasParent;

});//MARK为什么在这里还得加一个过滤

tree=tree.filter((item)=>{return!item._hasParent;

})returntree

}console.log(JSON.stringify(fnSetTreeData(data),null,2));至于怎么解决循环引用的问题, 先用sort给数组排序后, 再在每次filter中计数++如何 ?得给一个测试数据 :vardata=[

{id:40,parentId:31,note:"的萨达是"},

{id:20,parentId:11,note:"的萨达是"},

{id:22,parentId:20,note:"dsadas"},

{id:12,parentId:null,note:"dsadasad萨达s"},

{id:11,parentId:undefined,note:"dqwds"},

{id:24,parentId:22,note:"搜索"},

{id:34,parentId:22,note:"搜索"}

];

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。