js 递归树结构数据查找所有父级
需求:通过传入当前节点的code,查询出所有的父级节点
export function getParent(data2, nodeId2) { var arrRes = []; if (data2.length == 0) { if (!!nodeId2) { arrRes.unshift(data2) } return arrRes; } let rev = (data, nodeId) => { for (var i = 0, length = data.length; i < length; i++) { let node = data[i]; if (node.id == nodeId) { arrRes.unshift(node) rev(data2, node.parentCode); // 注意这里是传入的tree,不要写成data了,不然遍历的时候一直都是node.children,不是从最顶层开始遍历的 break; } else { if (!!node.children) { rev(node.children, nodeId); } } } return arrRes; }; arrRes = rev(data2, nodeId2); return arrRes; }
调用时,传入数据和当前节点code(数据为树型结构)
let newLevel = getParent(this.info, row.id)