标签:null 父级 树结构 label id 1.3 parentId js children
一、模拟数据
var arrData = [{ "label": "中国", "parentId": null, "id": "0", "children": [{ "label": "河北", "parentId": "0", "id": "1", "children": [{ "label": "石家庄", "parentId": "1", "id": "1.1", "children": null }, { "label": "保定", "parentId": "1", "id": "1.2", "children": null }, { "label": "邯郸", "parentId": "1", "id": "1.3", "children": [{ "label": "邯山区", "parentId": "1.3", "id": "1.3.1", "children": [{ "label": "丛西街道", "parentId": "1.3.1", "id": "1.3.1.1", "children": null }] }, { "label": "涉县", "parentId": "1.3", "id": "1.3.2", "children": null }, { "label": "丛台区", "parentId": "1.3", "id": "1.3.3", "children": null } ] } ] }, { "label": "山东", "parentId": "0", "id": "2", "children": [{ "label": "济南", "parentId": "2", "id": "2.1", "children": null }] }, { "label": "北京", "parentId": "0", "id": "3", "children": null } ] },];
二、从下往上递归
function findParents(treeData,id){ let allparents = [] if(treeData.length==0){ return } let findele = (data,id) => { if(!id) return data.forEach((item,index) => { if(item.id == id){ allparents.unshift(item.id) findele(treeData,item.parentId) }else{ if(!!item.children){ findele(item.children,id) } } }) } findele(treeData,id) return allparents } console.log('result',findParents(arrData,"1.3.1.1"))
三、从上往下递归
function findParents(treeData,id){ if(treeData.length==0) return for(let i=0;i<treeData.length;i++){ if(treeData[i].id == id){ return [] }else{ if(treeData[i].children){ let res = findParents(treeData[i].children,id) if(res !== undefined){ return res.concat(treeData[i].id) } } } } }
标签:null,父级,树结构,label,id,1.3,parentId,js,children 来源: https://www.cnblogs.com/liumingwang/p/14989257.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。