js实现遍历树结构,查找某个节点的直接父节点。

1. 数据准备

// 树形数据
let data = { 
      name: '1',
      children: [{
          name: '1-1',
          children: [{
              name: '1-1-1',
              children: [{
                name: '1-1-1-1'
              }]
            },
            {
              name: '1-1-2'
            }
          ]
        },
        {
          name: '1-2',
          children: [{
              name: '1-2-1',
            },
            {
              name: '1-2-2',
              children: [{
                name: '1-2-2-1'
              }]
            }
          ]
        },
        {
          name: '1-3'
        }
      ]
    }

// 要查找的节点
let node = {
	name: '1-2-2-1'
}

2.代码实现

function getParent(node, tree) {
	let result = []
	function find(node, tree) {
		tree.children.forEach(item => {
			if (item.name === node.name) {
            	result.push(tree)
          	}
          	if ('children' in item) {
            	find(node, item)
          	}
		});
	}
	find(node, tree)
	return result[0]
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值