1. 程式人生 > >JS 將json數組轉為嵌套層級數組

JS 將json數組轉為嵌套層級數組

tree 層級 鍵值 多說 urn src alt dtree 分享圖片

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]) },

!!!

JS 將json數組轉為嵌套層級數組