JS树结构转list结构
树转list
/** * 树转list */ function treeToList(tree){ for(var i in tree){ var node = tree[i]; list = []; //结果lsit if (node.children.length !== 0) { //遍历树的第一层,只有一个根结点 //第一层加入到list中,因为根结点模块设置为虚拟结点,所以不用加入 /*list.push({ id: node.id, name: node.title, parentId:node.parentId });*/ toListDF(node.children, list, node.id); //遍历子树,并加入到list中. } } return list; } /** * 深度优先遍历树 * 一个递归方法 * @params tree:要转换的树结构数据 * @params list:保存结果的列表结构数据,初始传list = [] * @params parentId:当前遍历节点的父级节点id,初始为null(因为根节点无parentId) **/ function toListDF (tree, list, parentId) { for (var i in tree) { //遍历最上层 //将当前树放入list中 var node = tree[i]; list.push({ id: node.id, name: node.title, parentId:parentId }); //如果有子结点,再遍历子结点 if (node.children.length !== 0) { toListDF(node.children, list, node.id) //递归 } } }
如果这篇文章对你有用,可以关注本人微信公众号获取更多ヽ(^ω^)ノ ~
![微信公众号二维码](https://images.cnblogs.com/cnblogs_com/aeolian/1679458/o_wechat_gzh_qrcode.jpg)