啊,总有后端不能返回我们所需要的数据格式数据。那时候就需要我们自己遍历获取所需要的数据。
需要一点点的算法功底( 算法不行的me表示难受的很(ノω<。)ノ))☆.。 )
例子:
后端的res.data.data 是这种的时候~
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,那这树就是空,直接返回,如果其内还有值则进行遍历,如果这树还未到最底层,则再次调用本身,否则就给空数组增加进去此底层的值。
最终拿到所有底层的数据。
刚学算法没多久,暂时只想到这样拿取数据。这方法感觉就像深度优先遍历对象来深拷贝一样。有些迷糊的写了出来。(´・ω・`)?。有大佬辛苦优化就更好了。