具有層級關係的扁平化陣列轉化成樹形結構陣列
阿新 • • 發佈:2020-12-17
// 遞迴查詢父級及其子級節點 nestFn(id) { let a = []; this.resJson.forEach(item => { if (item.fatherid == id) { let { fatherid, roleid, rolelevel, rolename } = item; a.push({ fatherid, roleid, rolelevel, rolename, children: this.nestFn(roleid) }) } }) return a; }, deptFunc() { this.resJson = JSON.parse(treeJson); let deptArr = []; // 轉化後的結果資料 this.resJson.forEach((item, index) => { if (Number(item.fatherid) < 0) { // 查詢最外層節點資料 let { fatherid, roleid, rolelevel, rolename } = item; deptArr.push({ fatherid, roleid, rolelevel, rolename, children: this.nestFn(roleid) }) } }); },
下圖是98條具有層級關係的扁平化陣列
下圖是轉化後的結果資料
轉換思路:父級與子級的關係是通過fatherid與roleid關聯的,子元素的‘fatherid===父元素的roleid’,由此可以遞迴出層級關係的資料