前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >树形结构已知子节点找父节点

树形结构已知子节点找父节点

作者头像
tianyawhl
发布2020-08-17 22:24:28
4.6K0
发布2020-08-17 22:24:28
举报
文章被收录于专栏:前端之攻略前端之攻略

假如结构树如下,如何根据已经的label寻找父级label,网上找了几个比较好的方法 

代码语言:javascript
复制
         var data = [{
          id: 1,
          label: '一级 1',
          children: [{
            id: 4,
            label: '二级 1-1',
            children: [{
              id: 9,
              label: '三级 1-1-1'
            }, {
              id: 10,
              label: '三级 1-1-2'
            }]
          }]
        }, {
          id: 2,
          label: '一级 2',
          children: [{
            id: 5,
            label: '二级 2-1'
          }, {
            id: 6,
            label: '二级 2-2'
          }]
        }, {
          id: 3,
          label: '一级 3',
          children: [{
            id: 7,
            label: '二级 3-1'
          }, {
            id: 8,
            label: '二级 3-2'
          }]
        }]

 第一种方法

代码语言:javascript
复制
		function find(arr,label){
		 let stock =[]
		 let going = true
		 var warker = function(arr,label){
		    arr.forEach(item=>{
			     if (!going) return
				 stock.push(item.label)
			     if(item.label == label){
				    going = false
				 }else if(item.children){
				 warker(item.children,label)
				 }else{
				  stock.pop()
				 }
			})
			if(going)  stock.pop()
		 }
		 warker(arr,label)
		 return stock
		}
		console.log(find(data,"三级 1-1-2"))

第二种方法

代码语言:javascript
复制
		function formatTree(arr,levelInfo=""){
		   return arr.map(item =>{
		      const newParent =levelInfo? levelInfo+ '--' + item.id:''+item.id
			  const temp = {
			     ...item,
				 levelInfo:newParent
			  
			  }
			  if(item.children){
			     temp.children = formatTree(item.children,newParent)
			  }
			  return temp
		   })
		}
		console.log(formatTree(data))
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档