当前位置: 首页 > Web前端 > JavaScript

js实现将扁平化的数据转换为渲染树结构所需的数据

时间:2023-03-27 12:40:02 JavaScript

/**@Description:*@version:0630*@Author:YaoPengFei582*@Date:2021-06-3016:27:17*@LastEditors:YaoPengFei582*@LastEditTime:2021-06-3017:55:12*/constflatTree=[{id:"1-1",label:"Level1-1",parentId:"1"},{id:"2-1",label:"Level2-1",parentId:"2"},{id:"3-1",label:"3-1级",parentId:"3"},{id:"1-2",label:"1-2级",parentId:"1"},{id:"2-2",label:"2-2级",parentId:"2"},{id:"3-2",label:"3-2级",parentId:"3"},{id:"1-3",label:"1-3级",parentId:"1"},{id:"2-3",label:"2-3级",parentId:"2"},{id:"3-3",label:"3-3级",parentId:"3"},{id:"1",label:"1级",parentId:""},{id:"2",label:"Level2",parentId:""},{id:"3",label:"Level3",parentId:""},{id:"1-1-1",label:"Level1-1-1",parentId:"1-1"},{id:"2-1-1",label:"Level2-1-1",parentId:"2-1"},{id:"3-1-1",label:"Level3-1-1",parentId:"3-1"},]constresultTree=[{id:'1',parentId:"",标签:“1级”,志孩子们:[{id:"1-1",label:"1-1级",parentId:"1",children:[{id:"1-1-1",label:"1-1-1级",parentId:"1-1",children:[]},{id:"1-1-2",label:"Level1-1-2",parentId:"1-1",children:[]},]},{id:"1-2",label:"1-2级",parentId:"1",children:[]},]},{id:'2',parentId:"",label:"Level2",children:[]},{id:'3',parentId:"",label:"Level3",children:[]},]constfirstLevelTree=flatTree.filter(node=>!node.parentId)firstLevelTree.forEach(node=>{node.children=getChildNodeList(node.id,flatTree)})//递归调用创建ChildNodeList函数getChildNodeList(id,tree){constchildNodeList=tree.filter(node=>node.parentId===id)returnchildNodeList.map(childNode=>{return{...childNode,children:getChildNodeList(childNode.id,tree)}})}console.log('firstLevelTree',firstLevelTree)转换后的结果:constresult=[{"id":"1","label":"1级","parentId":"","children":[{"id":"1-1","label":"1-1级","parentId":"1","children":[{"id":"1-1-1","label":"1-1-1级","parentId":"1-1","children":[]}]},{"id":"1-2","label":"1-2级","parentId":"1","children":[]},{"id":"1-3","label":"1-3级","parentId":"1","children":[]}]},{"id":"2","label":"2级","parentId":"","children":[{"id":"2-1","label":"2-1级","parentId":"2","children":[{"id":"2-1-1","label":"2-1-1级","parentId":"2-1","children":[]}]},{"id":"2-2","label":"2-2级","parentId":"2","children":[]},{"id":"2-3","label":"2-3级","parentId":"2","children":[]}]},{"id":"3","label":"3级","parentId":"","children":[{"id":"3-1","label":"3-1级","parentId":"3","children":[{"id":"3-1-1","label":"3-1-1级","parentId":"3-1","children":[]}]},{"id":"3-2","label":"3-2级","parentId":"3","children":[]},{"id":"3-3","label":"3-3级","parentId":"3","children":[]}]}]

最新推荐
猜你喜欢