<script>
var list = [{
"id": "0",
"name": "Session",
"type": 1,
"children": [{
"id": "47",
"name": "文件夹1",
"parentId": 0,
"resourceId": 0,
"description": "",
"type": "0",
"children": [{
"id": "44",
"name": "192.168.3.144",
"parentId": 47,
"resourceId": 44,
"description": "",
"type": "1",
"children": []
}]
}, {
"id": "48",
"name": "文件夹2",
"parentId": 0,
"resourceId": 0,
"description": "",
"type": "0",
"children": [{
"id": "50",
"name": "192.168.3.143",
"parentId": 48,
"resourceId": 45,
"description": "",
"type": "1",
"children": []
}]
}, {
"id": "49",
"name": "文件夹3",
"parentId": 0,
"resourceId": 0,
"description": "",
"type": "0",
"children": [{
"id": "51",
"name": "192.168.3.145",
"parentId": 49,
"resourceId": 46,
"description": "",
"type": "1",
"children": []
}, {
"id": "52",
"name": "ceshi",
"parentId": 49,
"resourceId": 47,
"description": "",
"type": "1",
"children": []
}, {
"id": "53",
"name": "文件夹3-1",
"parentId": 49,
"resourceId": 0,
"description": "",
"type": "0",
"children": [{
"id": "55",
"name": "ceshi3-1",
"parentId": 53,
"resourceId": 48,
"description": "",
"type": "1",
"children": []
}]
}, {
"id": "54",
"name": "文件夹3-2",
"parentId": 49,
"resourceId": 0,
"description": "",
"type": "0",
"children": []
}]
}]
}, {
"id": "47",
"name": "文件夹1",
"parentId": 0,
"resourceId": 0,
"description": "",
"type": "0",
"children": [{
"id": "44",
"name": "192.168.3.144",
"parentId": 47,
"resourceId": 44,
"description": "",
"type": "1",
"children": []
}]
}, {
"id": "44",
"name": "192.168.3.144",
"parentId": 47,
"resourceId": 44,
"description": "",
"type": "1",
"children": []
}, {
"id": "48",
"name": "文件夹2",
"parentId": 0,
"resourceId": 0,
"description": "",
"type": "0",
"children": [{
"id": "50",
"name": "192.168.3.143",
"parentId": 48,
"resourceId": 45,
"description": "",
"type": "1",
"children": []
}]
}, {
"id": "50",
"name": "192.168.3.143",
"parentId": 48,
"resourceId": 45,
"description": "",
"type": "1",
"children": []
}, {
"id": "49",
"name": "文件夹3",
"parentId": 0,
"resourceId": 0,
"description": "",
"type": "0",
"children": [{
"id": "51",
"name": "192.168.3.145",
"parentId": 49,
"resourceId": 46,
"description": "",
"type": "1",
"children": []
}, {
"id": "52",
"name": "ceshi",
"parentId": 49,
"resourceId": 47,
"description": "",
"type": "1",
"children": []
}, {
"id": "53",
"name": "文件夹3-1",
"parentId": 49,
"resourceId": 0,
"description": "",
"type": "0",
"children": [{
"id": "55",
"name": "ceshi3-1",
"parentId": 53,
"resourceId": 48,
"description": "",
"type": "1",
"children": []
}]
}, {
"id": "54",
"name": "文件夹3-2",
"parentId": 49,
"resourceId": 0,
"description": "",
"type": "0",
"children": []
}]
}, {
"id": "51",
"name": "192.168.3.145",
"parentId": 49,
"resourceId": 46,
"description": "",
"type": "1",
"children": []
}, {
"id": "52",
"name": "ceshi",
"parentId": 49,
"resourceId": 47,
"description": "",
"type": "1",
"children": []
}, {
"id": "53",
"name": "文件夹3-1",
"parentId": 49,
"resourceId": 0,
"description": "",
"type": "0",
"children": [{
"id": "55",
"name": "ceshi3-1",
"parentId": 53,
"resourceId": 48,
"description": "",
"type": "1",
"children": []
}]
}, {
"id": "55",
"name": "ceshi3-1",
"parentId": 53,
"resourceId": 48,
"description": "",
"type": "1",
"children": []
}, {
"id": "54",
"name": "文件夹3-2",
"parentId": 49,
"resourceId": 0,
"description": "",
"type": "0",
"children": []
}]
怎么遍历数组并去除type=o的项
首先,前端一般情况下是拿到数据渲染展示即可,这样还要进一步处理的,除了特殊情况外,不然都后端处理好,虽然我也是后端哈。那我们就当特殊情况来说,多维对象数据,那就for循环呗,结构挺简单的,如果层级不确定,用递归判断children下是否数据即可。如果是需要给你一段代码,请追问。我相信你是想问个思路。
递归循环即可。有个问题就是,如果是父节点为0,子节点是不是都抛弃
let arr = [{
"id": "0",
"name": "Session",
"type": 1,
"children": [{
"id": "47",
"name": "文件夹1",
"parentId": 0,
"resourceId": 0,
"description": "",
"type": "0",
"children": [{
"id": "44",
"name": "192.168.3.144",
"parentId": 47,
"resourceId": 44,
"description": "",
"type": "1",
"children": []
}]
}, {
"id": "48",
"name": "文件夹2",
"parentId": 0,
"resourceId": 0,
"description": "",
"type": "0",
"children": [{
"id": "50",
"name": "192.168.3.143",
"parentId": 48,
"resourceId": 45,
"description": "",
"type": "1",
"children": []
}]
}, {
"id": "49",
"name": "文件夹3",
"parentId": 0,
"resourceId": 0,
"description": "",
"type": "0",
"children": [{
"id": "51",
"name": "192.168.3.145",
"parentId": 49,
"resourceId": 46,
"description": "",
"type": "1",
"children": []
}, {
"id": "52",
"name": "ceshi",
"parentId": 49,
"resourceId": 47,
"description": "",
"type": "1",
"children": []
}, {
"id": "53",
"name": "文件夹3-1",
"parentId": 49,
"resourceId": 0,
"description": "",
"type": "0",
"children": [{
"id": "55",
"name": "ceshi3-1",
"parentId": 53,
"resourceId": 48,
"description": "",
"type": "1",
"children": []
}]
}, {
"id": "54",
"name": "文件夹3-2",
"parentId": 49,
"resourceId": 0,
"description": "",
"type": "0",
"children": []
}]
}]
}, {
"id": "47",
"name": "文件夹1",
"parentId": 0,
"resourceId": 0,
"description": "",
"type": "0",
"children": [{
"id": "44",
"name": "192.168.3.144",
"parentId": 47,
"resourceId": 44,
"description": "",
"type": "1",
"children": []
}]
}, {
"id": "44",
"name": "192.168.3.144",
"parentId": 47,
"resourceId": 44,
"description": "",
"type": "1",
"children": []
}, {
"id": "48",
"name": "文件夹2",
"parentId": 0,
"resourceId": 0,
"description": "",
"type": "0",
"children": [{
"id": "50",
"name": "192.168.3.143",
"parentId": 48,
"resourceId": 45,
"description": "",
"type": "1",
"children": []
}]
}, {
"id": "50",
"name": "192.168.3.143",
"parentId": 48,
"resourceId": 45,
"description": "",
"type": "1",
"children": []
}, {
"id": "49",
"name": "文件夹3",
"parentId": 0,
"resourceId": 0,
"description": "",
"type": "0",
"children": [{
"id": "51",
"name": "192.168.3.145",
"parentId": 49,
"resourceId": 46,
"description": "",
"type": "1",
"children": []
}, {
"id": "52",
"name": "ceshi",
"parentId": 49,
"resourceId": 47,
"description": "",
"type": "1",
"children": []
}, {
"id": "53",
"name": "文件夹3-1",
"parentId": 49,
"resourceId": 0,
"description": "",
"type": "0",
"children": [{
"id": "55",
"name": "ceshi3-1",
"parentId": 53,
"resourceId": 48,
"description": "",
"type": "1",
"children": []
}]
}, {
"id": "54",
"name": "文件夹3-2",
"parentId": 49,
"resourceId": 0,
"description": "",
"type": "0",
"children": []
}]
}, {
"id": "51",
"name": "192.168.3.145",
"parentId": 49,
"resourceId": 46,
"description": "",
"type": "1",
"children": []
}, {
"id": "52",
"name": "ceshi",
"parentId": 49,
"resourceId": 47,
"description": "",
"type": "1",
"children": []
}, {
"id": "53",
"name": "文件夹3-1",
"parentId": 49,
"resourceId": 0,
"description": "",
"type": "0",
"children": [{
"id": "55",
"name": "ceshi3-1",
"parentId": 53,
"resourceId": 48,
"description": "",
"type": "1",
"children": []
}]
}, {
"id": "55",
"name": "ceshi3-1",
"parentId": 53,
"resourceId": 48,
"description": "",
"type": "1",
"children": []
}, {
"id": "54",
"name": "文件夹3-2",
"parentId": 49,
"resourceId": 0,
"description": "",
"type": "0",
"children": []
}]
// 权限列表
const myMenuCode = ["0"]
const filterMenu = (menuList, menuCode) => {
return menuList.filter(item => {
return menuCode.indexOf(item.type) ==-1
}).map(item => {
item = Object.assign({}, item)
if (item.children) {
item.children = filterMenu(item.children, menuCode)
}
return item
})
}
// 过滤后的菜单
const myMenu = filterMenu(arr, myMenuCode)
console.log(myMenu,"99")