知道子级id利用递归函数获取父级id,再进行拼接

一、定义一个嵌套子级数组

const arr = [{
				id:1,
				key: "411200000000",
				label: "三门峡市",
				children: [{
					key: "11411200005802248U",
					label: "三门峡市水利局"
				}, {
					key: "11411200005802264H",
					label: "三门峡市林业局"
				}, {
					key: "114112000058023445",
					label: "三门峡市生态环境局"
				}]
			}, {
				id:2,
				key: "1000111",
				label: "自有机构",
				children: []
			}]

二、定义递归函数

function changeCascader(key, arrData) {
				let arr = [];
				let returnArr = []; // 存放结果的数组
				let depth = 0; // 定义全局层级
				// 定义递归函数
				function childrenEach(childrenData, depthN) {
					for (var j = 0; j < childrenData.length; j++) {
						depth = depthN; // 将执行的层级赋值 到 全局层级
						arr[depthN] = childrenData[j].key;
						if (childrenData[j].key == key) {
							returnArr = arr.slice(0, depthN + 1); //将目前匹配的数组,截断并保存到结果数组,
							break;
						} else {
							if (childrenData[j].children) {
								depth++;
								childrenEach(childrenData[j].children, depth);
							}
						}
					}
					return returnArr;
				}
				return childrenEach(arrData, depth);
			}

三、定义一个新数组

let newArr = []

四、获取子级id

let keyString = "11411200005802248U"

五、将子级id转成字符串数组

let key = keyString.split(',')

六、对转换成数组的子id进行遍历,然后利用递归求出父id添加到新数组中

for (let i in key) {
				newArr.push(
				   changeCascader(key[i],arr)
				)
			}
console.log(newArr)

注意:
这里的子数组为children,如果子数组是其它字段,则需要把递归函数中的children替换

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值