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


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

 

 

 

!!!

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM