需求:通過傳入當前節點的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)