啊,總有後端不能傳回我們所需要的資料格式資料。那時候就需要我們自己周遊擷取所需要的資料。
需要一點點的算法功底( 算法不行的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,那這樹就是空,直接傳回,如果其内還有值則進行周遊,如果這樹還未到最底層,則再次調用本身,否則就給空數組增加進去此底層的值。
最終拿到所有底層的資料。
剛學算法沒多久,暫時隻想到這樣拿取資料。這方法感覺就像深度優先周遊對象來深拷貝一樣。有些迷糊的寫了出來。(´・ω・`)?。有大佬辛苦優化就更好了。