js如何遍历多维不规则数组,去除中间type=0的内容,返回新的数组

  <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")