天天看點

将後端接口傳回的-規則樹狀結構資料-轉化為數組

啊,總有後端不能傳回我們所需要的資料格式資料。那時候就需要我們自己周遊擷取所需要的資料。

需要一點點的算法功底( 算法不行的me表示難受的很(ノω<。)ノ))☆.。 )

let organizationTreeList =

[

    {

        "organizationTreeList": [

            {

                "empName": "1哈哈",

            }

        ],

        "title": "上司啊",

        "empName": null,

    },

        "orgName": null,

        "organizationId": "",

        "parentId": "1",

                "title": "管理部分部",

                "organizationTreeList": [

                    {

                        "title": "管理部分分部",

                        "organizationTreeList": [

                            {

                                "organizationTreeList": [

                                    {

                                        "empName": "3哈哈",

                                    }

                                ]

                            }

                        ],

                    }

                ]

        "title": "管理部",

        "code": null,

    }]

        "title": "上司",

我們需要拿到其中所有的empName有值的資料。也就是各organizationList樹中最下面的值。并将它放入一個數組。

方法:

    let arr = []

    function findItem(organizationTreeList) {

        if(organizationTreeList.length === 0) {

            return

        }

        organizationTreeList.map((v) => {

            if(v.organizationTreeList) {

                findItem(v.organizationTreeList)

            }else {

                arr.push(v)

        })

    }

    findItem(organizationTreeList)

    console.log(arr)

解釋:這已經是個成熟的方法了,需要學會自己使用自己來完成目标(遞歸好吧也不知道是不是。。)

原理:方法開啟,長度為0,那這樹就是空,直接傳回,如果其内還有值則進行周遊,如果這樹還未到最底層,則再次調用本身,否則就給空數組增加進去此底層的值。

最終拿到所有底層的資料。

剛學算法沒多久,暫時隻想到這樣拿取資料。這方法感覺就像深度優先周遊對象來深拷貝一樣。有些迷糊的寫了出來。(´・ω・`)?。有大佬辛苦優化就更好了。

繼續閱讀