下面是接口模拟数据,我需要根据不同父节点,用户点击会执行不同逻辑,也就是通过递归方式,用户任意点击一个树节点,怎么知道当前是第几层节点
比如如果用户点击模块节点,就让页面按钮变灰,禁止用户点击,如果点击绩效,就让按钮恢复并高亮,允许用户点击,就是我怎么知道用户点击了哪个节点呢,不可能通过节点名字去判断吧,节点有几层是未知的
let arr = [{
"id": 90,
"name": "MS",
"pareid": 0,
"children": [{
"id": 736,
"name": "模块",
"pareid": 90,
"children": [{
"id": 739,
"name": "资产",
"pareid": 736,
"children": [{
"id": 971,
"name": "绩效",
"pareid": 739,
}]
}, {
"id": 741,
"name": "交易_a",
"pareid": 736,
"children": [{
"id": 742,
"name": "盘前",
"pareid": 741,
}, {
"id": 743,
"name": "总览",
"pareid": 741,
}, {
"id": 744,
"name": "指令_a",
"pareid": 741,
}, {
"id": 969,
"name": "证券",
"pareid": 741,
}, {
"id": 972,
"name": "交易_s",
"pareid": 741,
}, {
"id": 985,
"name": "_a监控",
"pareid": 741,
}, {
"id": 995,
"name": "期指",
"pareid": 741,
}, {
"id": 1008,
"name": "监_控",
"pareid": 741,
}, {
"id": 1009,
"name": "信_息",
"pareid": 741,
}, {
"id": 1010,
"name": "日_报",
"pareid": 741,
}, {
"id": 1019,
"name": "历史",
"pareid": 741,
}, {
"id": 1032,
"name": "多基",
"pareid": 741,
}, {
"id": 1033,
"name": "预警",
"pareid": 741,
}, {
"id": 1034,
"name": "成交",
"pareid": 741,
}, {
"id": 1035,
"name": "交易_2",
"pareid": 741,
}, {
"id": 1036,
"name": "实时_w",
"pareid": 741,
}, {
"id": 1037,
"name": "分析a",
"pareid": 741,
}]
}]
}, {
"id": 997,
"name": "特殊",
"pareid": 90,
"children": [{
"id": 996,
"name": "所有",
"pareid": 997,
}, {
"id": 1024,
"name": "hg",
"pareid": 997,
}, {
"id": 1025,
"name": "管理",
"pareid": 997,
}, {
"id": 1026,
"name": "交易员",
"pareid": 997,
}, {
"id": 1028,
"name": "债_kl",
"pareid": 997,
}, {
"id": 1029,
"name": "理h员",
"pareid": 997,
}, {
"id": 1040,
"name": "模_e拟",
"pareid": 997,
}, {
"id": 1041,
"name": "清_df算",
"pareid": 997,
}, {
"id": 1340,
"name": "关联_方",
"pareid": 997,
}, {
"id": 1350,
"name": "关联r_方",
"pareid": 997,
}, {
"id": 1351,
"name": "关联_n方",
"pareid": 997,
}, {
"id": 1352,
"name": "关联v_方",
"pareid": 997,
}, {
"id": 1353,
"name": "关联_g方",
"pareid": 997,
}, {
"id": 1354,
"name": "_1v1",
"pareid": 997,
}, {
"id": 1355,
"name": "_1vn",
"pareid": 997,
}]
}]
}];
recursion = (cityData) => {
for (let i = 0; i < cityData.length; i++) {
const childs = cityData[i].children;
if(childs && childs.length > 0) {// 如果还有子节点,执行递归
recursion(childs);
}
}
}
recursion(arr);
即可