AiresZG 2021-09-09 01:38 采纳率: 16.7%
浏览 98
已结题

js如何遍历不规则多维数组,去除type=0的部分,并返回新的数组,求指导


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": []
        }]
  • 写回答

4条回答 默认 最新

  • 峰子哥哥 2021-09-09 09:50
    关注
    
        console.log(list);
    
        //剔除无子节点并且type==0的 只取type==1或者有子节点的
        getList(list);
    
        //删除type==0的,包括其下的子节点,只保留type==1的
        // removeList(list);
    
        console.log(list);
    
    
        function getList(list) {
            for (let i = 0; i < list.length; i++) {
                let item = list[i];
                if (item.children && item.children.length > 0) {
                    getList(item.children);
                }
                if (item.type === "0" && (!item.children || item.children.length === 0)) {
                    list.splice(i, 1);
                    i--;
                }
            }
        }
    
        function removeList(list) {
            for (let i = 0; i < list.length; i++) {
                let item = list[i];
                if (item.children && item.children.length > 0) {
                    removeList(item.children);
                }
                if (item.type === "0") {
                    list.splice(i, 1);
                    i--;
                }
            }
        }
    
    

    提供了两种场景的解决方案,如果能帮到你,望【采纳】

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

问题事件

  • 系统已结题 9月17日
  • 已采纳回答 9月9日
  • 创建了问题 9月9日

悬赏问题

  • ¥15 fluent的在模拟压强时使用希望得到一些建议
  • ¥15 STM32驱动继电器
  • ¥15 Windows server update services
  • ¥15 关于#c语言#的问题:我现在在做一个墨水屏设计,2.9英寸的小屏怎么换4.2英寸大屏
  • ¥15 模糊pid与pid仿真结果几乎一样
  • ¥15 java的GUI的运用
  • ¥15 Web.config连不上数据库
  • ¥15 我想付费需要AKM公司DSP开发资料及相关开发。
  • ¥15 怎么配置广告联盟瀑布流
  • ¥15 Rstudio 保存代码闪退