ele UI 的樹級菜單的數據要求是這種嵌套的,但是Ztree的老用發的是
var zNodes =[ { id:1, pId:0, name:"zTree Home", pid:0}, { id:2, pId:0, name:"zTree in Google",pid:0},
{ id:3, pId:0, name:"zTree in Iteye",pid:1}]
這種以pid來識別父級關系的,話不多說轉換
//將數組轉成嵌套的 buildTree (arr) { let temp = {} let tree = {} // 數組轉 鍵值對 arr.forEach(item => { temp[item.id] = item }) let tempKeys = Object.keys(temp) tempKeys.forEach(key => { // 獲取當前項 let item = temp[key] // 當前項 pId let _itemPId = item.pid // 獲取父級項 let parentItemByPid = temp[_itemPId] if (parentItemByPid) { if (!parentItemByPid.children) { parentItemByPid.children = [] } parentItemByPid.children.push(item) } else { tree[item.id] = item } }) // 對象轉數組並返回 return Object.keys(tree).map(key => tree[key]) },
!!!