zoukankan      html  css  js  c++  java
  • 根据ID或者ID集合查找树形结构数据里面ID所对应的节点信息

    代码看这里

    截图

    树形结构数据

    var data = [
            {
                "id": "7ce813f379de44e3842ca74a07b710f5",
                "parentId": "69fde9ffbd2a4558924d77890c747603",
                "label": "萍乡市河长办1",
                "code": "100001007002002",
                "type": "o",
                "sort": 30,
                "children": [
                    {
                        "id": "5d918f95b513450c83b54748631c3c34",
                        "parentId": "7ce813f379de44e3842ca74a07b710f5",
                        "label": "周杰伦",
                        "type": "u"
                    },
                    {
                        "id": "925c9e605c5b4c888bb164ee884a5c3b",
                        "parentId": "7ce813f379de44e3842ca74a07b710f5",
                        "label": "李连杰",
                        "type": "u"
                    },
                    {
                        "id": "4a5551b95517495db8ca823fcaa01f7b",
                        "parentId": "7ce813f379de44e3842ca74a07b710f5",
                        "label": "萍乡市河长办",
                        "type": "u"
                    },
                    {
                        "id": "0dbe25d3f7fe443cafaf9bc883f6423f",
                        "parentId": "7ce813f379de44e3842ca74a07b710f5",
                        "label": "黄辉",
                        "type": "u"
                    },
                    {
                        "id": "54edd6b3718348e0ac254394ada6cfac",
                        "parentId": "abb1dae40abf4f7c902d7fc21513d671",
                        "label": "湘东河长办",
                        "code": "100001007001001007",
                        "type": "o",
                        "sort": 30,
                        "children": [
                            {
                                "id": "c128cc24578842debff29b4eba1355bf",
                                "parentId": "54edd6b3718348e0ac254394ada6cfac",
                                "label": "杨博",
                                "type": "u"
                            },
                            {
                                "id": "05b8387138a74de9b67a14ae793a9ade",
                                "parentId": "72ef8ce2a10f40259aa3338ca4b7177e",
                                "label": "腊市镇河长办",
                                "code": "100001007001001007005",
                                "type": "o",
                                "sort": 30,
                                "area": {
                                    "id": "0ee56856786a422c9ca9f8d5759d4622",
                                    "tenantId": "system",
                                    "parentIds": "0,1,69fde9ffbd2a4558924d77890c747603,abb1dae40abf4f7c902d7fc21513d671,72ef8ce2a10f40259aa3338ca4b7177e,",
                                    "name": "腊市镇",
                                    "sort": 30,
                                    "parentId": "72ef8ce2a10f40259aa3338ca4b7177e"
                                }
                            },
                            {
                                "id": "11303ea1e5b84323afd1b5e290aee812",
                                "parentId": "72ef8ce2a10f40259aa3338ca4b7177e",
                                "label": "荷尧镇河长办",
                                "code": "100001007001001007002",
                                "type": "o",
                                "sort": 30,
                                "area": {
                                    "id": "ef4856ce6ce4487495874b8e5b6ba77b",
                                    "tenantId": "system",
                                    "parentIds": "0,1,69fde9ffbd2a4558924d77890c747603,abb1dae40abf4f7c902d7fc21513d671,72ef8ce2a10f40259aa3338ca4b7177e,",
                                    "name": "荷尧镇",
                                    "sort": 30,
                                    "parentId": "72ef8ce2a10f40259aa3338ca4b7177e"
                                }
                            },
                            {
                                "id": "3d0b83c3a63f4de38dc99bd3f340cdba",
                                "parentId": "72ef8ce2a10f40259aa3338ca4b7177e",
                                "label": "老关镇河长办",
                                "code": "100001007001001007004",
                                "type": "o",
                                "sort": 30,
                                "area": {
                                    "id": "3cc4fd35a4e04513b4e9beddee457c59",
                                    "tenantId": "system",
                                    "parentIds": "0,1,69fde9ffbd2a4558924d77890c747603,abb1dae40abf4f7c902d7fc21513d671,72ef8ce2a10f40259aa3338ca4b7177e,",
                                    "name": "老关镇",
                                    "sort": 30,
                                    "parentId": "72ef8ce2a10f40259aa3338ca4b7177e"
                                }
                            },
                            {
                                "id": "85e87941b8354d9db0c64590b21b4c83",
                                "parentId": "72ef8ce2a10f40259aa3338ca4b7177e",
                                "label": "峡山口河长办",
                                "code": "100001007001001007001",
                                "type": "o",
                                "sort": 30,
                                "children": [
                                    {
                                        "id": "4b21a22d711c4cf6a3e0166011a77e53",
                                        "parentId": "85e87941b8354d9db0c64590b21b4c83",
                                        "label": "刘文军",
                                        "type": "u"
                                    }
                                ],
                                "area": {
                                    "id": "d5945a00c1b545bda8c45a71e4a4fd9b",
                                    "tenantId": "system",
                                    "parentIds": "0,1,69fde9ffbd2a4558924d77890c747603,abb1dae40abf4f7c902d7fc21513d671,72ef8ce2a10f40259aa3338ca4b7177e,",
                                    "name": "峡山口街道",
                                    "sort": 30,
                                    "parentId": "72ef8ce2a10f40259aa3338ca4b7177e"
                                }
                            },
                            {
                                "id": "9b08a83486d949a991c1554341b63d08",
                                "parentId": "72ef8ce2a10f40259aa3338ca4b7177e",
                                "label": "湘东镇河长办",
                                "code": "100001007001001007003",
                                "type": "o",
                                "sort": 30,
                                "area": {
                                    "id": "d05a01385234450aab5e301ac032fec7",
                                    "tenantId": "system",
                                    "parentIds": "0,1,69fde9ffbd2a4558924d77890c747603,abb1dae40abf4f7c902d7fc21513d671,72ef8ce2a10f40259aa3338ca4b7177e,",
                                    "name": "湘东镇",
                                    "sort": 30,
                                    "parentId": "72ef8ce2a10f40259aa3338ca4b7177e"
                                }
                            },
                            {
                                "id": "a352b11dcbe242ae8a90e4c8f5507de8",
                                "parentId": "72ef8ce2a10f40259aa3338ca4b7177e",
                                "label": "白竺乡河长办",
                                "code": "100001007001001007011",
                                "type": "o",
                                "sort": 30,
                                "area": {
                                    "id": "1a9b224975cc4f6bbca361c33d652327",
                                    "tenantId": "system",
                                    "parentIds": "0,1,69fde9ffbd2a4558924d77890c747603,abb1dae40abf4f7c902d7fc21513d671,72ef8ce2a10f40259aa3338ca4b7177e,",
                                    "name": "白竺乡",
                                    "sort": 30,
                                    "parentId": "72ef8ce2a10f40259aa3338ca4b7177e"
                                }
                            },
                            {
                                "id": "b1e4d1dc75c5414eb145f4d5e08a87b3",
                                "parentId": "72ef8ce2a10f40259aa3338ca4b7177e",
                                "label": "排上镇河长办",
                                "code": "100001007001001007007",
                                "type": "o",
                                "sort": 30,
                                "area": {
                                    "id": "1a8c17ff7048475b9e65b3deef1db23f",
                                    "tenantId": "system",
                                    "parentIds": "0,1,69fde9ffbd2a4558924d77890c747603,abb1dae40abf4f7c902d7fc21513d671,72ef8ce2a10f40259aa3338ca4b7177e,",
                                    "name": "排上镇",
                                    "sort": 30,
                                    "parentId": "72ef8ce2a10f40259aa3338ca4b7177e"
                                }
                            },
                            {
                                "id": "d50bd604178d4ab5abd1c8b60db6981b",
                                "parentId": "72ef8ce2a10f40259aa3338ca4b7177e",
                                "label": "下埠镇河长办",
                                "code": "100001007001001007006",
                                "type": "o",
                                "sort": 30,
                                "area": {
                                    "id": "49953cb9c6b44cbdb43097c6e1cff8d0",
                                    "tenantId": "system",
                                    "parentIds": "0,1,69fde9ffbd2a4558924d77890c747603,abb1dae40abf4f7c902d7fc21513d671,72ef8ce2a10f40259aa3338ca4b7177e,",
                                    "name": "下埠镇",
                                    "sort": 30,
                                    "parentId": "72ef8ce2a10f40259aa3338ca4b7177e"
                                }
                            },
                            {
                                "id": "e7d16744266a4e5194a71a32287ce32b",
                                "parentId": "72ef8ce2a10f40259aa3338ca4b7177e",
                                "label": "麻山镇河长办",
                                "code": "100001007001001007009",
                                "type": "o",
                                "sort": 30,
                                "area": {
                                    "id": "00572d630c9d40c596a3ea71dba5d499",
                                    "tenantId": "system",
                                    "parentIds": "0,1,69fde9ffbd2a4558924d77890c747603,abb1dae40abf4f7c902d7fc21513d671,72ef8ce2a10f40259aa3338ca4b7177e,",
                                    "name": "麻山镇",
                                    "sort": 30,
                                    "parentId": "72ef8ce2a10f40259aa3338ca4b7177e"
                                }
                            },
                            {
                                "id": "f0721d016bf246d3a8c814d59d92655f",
                                "parentId": "72ef8ce2a10f40259aa3338ca4b7177e",
                                "label": "广寒寒乡河长办",
                                "code": "100001007001001007010",
                                "type": "o",
                                "sort": 30,
                                "area": {
                                    "id": "3af5d971406344e0aac9c849bba7ab39",
                                    "tenantId": "system",
                                    "parentIds": "0,1,69fde9ffbd2a4558924d77890c747603,abb1dae40abf4f7c902d7fc21513d671,72ef8ce2a10f40259aa3338ca4b7177e,",
                                    "name": "广寒寨乡",
                                    "sort": 30,
                                    "parentId": "72ef8ce2a10f40259aa3338ca4b7177e"
                                }
                            },
                            {
                                "id": "f64aac00504342758652cdc44c4ea6cd",
                                "parentId": "72ef8ce2a10f40259aa3338ca4b7177e",
                                "label": "东桥镇河长办",
                                "code": "100001007001001007008",
                                "type": "o",
                                "sort": 30,
                                "area": {
                                    "id": "cf31d227f1954a3082106d28695ccfa4",
                                    "tenantId": "system",
                                    "parentIds": "0,1,69fde9ffbd2a4558924d77890c747603,abb1dae40abf4f7c902d7fc21513d671,72ef8ce2a10f40259aa3338ca4b7177e,",
                                    "name": "东桥镇",
                                    "sort": 30,
                                    "parentId": "72ef8ce2a10f40259aa3338ca4b7177e"
                                }
                            }
                        ],
                        "area": {
                            "id": "72ef8ce2a10f40259aa3338ca4b7177e",
                            "tenantId": "system",
                            "parentIds": "0,1,69fde9ffbd2a4558924d77890c747603,abb1dae40abf4f7c902d7fc21513d671,",
                            "name": "湘东",
                            "sort": 30,
                            "parentId": "abb1dae40abf4f7c902d7fc21513d671"
                        }
                    },
                    {
                        "id": "64ee02bf145a4244b6a95a7f84752d0f",
                        "parentId": "abb1dae40abf4f7c902d7fc21513d671",
                        "label": "安源区河长办",
                        "code": "100001007002001001",
                        "type": "o",
                        "sort": 30,
                        "children": [
                            {
                                "id": "62fc84845fb3429f83671c491c14a987",
                                "parentId": "64ee02bf145a4244b6a95a7f84752d0f",
                                "label": "安源区河长办",
                                "type": "u"
                            },
                            {
                                "id": "55e5cea42d9c417a96898d6df8451cb5",
                                "parentId": "64ee02bf145a4244b6a95a7f84752d0f",
                                "label": "康峰",
                                "type": "u"
                            },
                            {
                                "id": "80f259115cd24c7198dac136790adae8",
                                "parentId": "64ee02bf145a4244b6a95a7f84752d0f",
                                "label": "陈俊颖",
                                "type": "u"
                            },
                            {
                                "id": "1ab0ea0186e548d8847ae56906b1dd12",
                                "parentId": "5bd4c9b4e170450aa67c360949f08b91",
                                "label": "高坑镇河长办",
                                "code": "100001007001001008",
                                "type": "o",
                                "sort": 30,
                                "area": {
                                    "id": "87220ba52bfc42cdbb770cf5a8bb326b",
                                    "tenantId": "system",
                                    "parentIds": "0,1,69fde9ffbd2a4558924d77890c747603,abb1dae40abf4f7c902d7fc21513d671,5bd4c9b4e170450aa67c360949f08b91,",
                                    "name": "高坑镇",
                                    "sort": 30,
                                    "parentId": "5bd4c9b4e170450aa67c360949f08b91"
                                }
                            },
                            {
                                "id": "33ac245e09c34850b8c56b320831288e",
                                "parentId": "5bd4c9b4e170450aa67c360949f08b91",
                                "label": "五陂下垦殖场河长办",
                                "code": "100001007001001010",
                                "type": "o",
                                "sort": 30,
                                "area": {
                                    "id": "5736491d3b994c8f9b93e8c9aacd9983",
                                    "tenantId": "system",
                                    "parentIds": "0,1,69fde9ffbd2a4558924d77890c747603,abb1dae40abf4f7c902d7fc21513d671,5bd4c9b4e170450aa67c360949f08b91,",
                                    "name": "五陂下垦殖场",
                                    "sort": 30,
                                    "parentId": "5bd4c9b4e170450aa67c360949f08b91"
                                }
                            },
                            {
                                "id": "426a08bde78c497dbaf9a55c5f08d76b",
                                "parentId": "5bd4c9b4e170450aa67c360949f08b91",
                                "label": "安源镇河长办",
                                "code": "100001007001001007",
                                "type": "o",
                                "sort": 30,
                                "children": [
                                    {
                                        "id": "5efd129d7126407fbc368f5b3ffb54be",
                                        "parentId": "426a08bde78c497dbaf9a55c5f08d76b",
                                        "label": "雷文茂",
                                        "type": "u"
                                    },
                                    {
                                        "id": "9523743f8374448f96d99d16b9dc8bab",
                                        "parentId": "53ec86cd47614e4fa5ba43c03e04005c",
                                        "label": "跃进村",
                                        "code": "100001007002001003003001",
                                        "type": "o",
                                        "sort": 30,
                                        "children": [
                                            {
                                                "id": "2425f2250e174cd7a8cdd55a172c6914",
                                                "parentId": "9523743f8374448f96d99d16b9dc8bab",
                                                "label": "yjchzb",
                                                "type": "u"
                                            }
                                        ],
                                        "area": {
                                            "id": "2ac732b685a04f5cb65e8fa73d5d2302",
                                            "tenantId": "system",
                                            "parentIds": "0,1,69fde9ffbd2a4558924d77890c747603,abb1dae40abf4f7c902d7fc21513d671,5bd4c9b4e170450aa67c360949f08b91,53ec86cd47614e4fa5ba43c03e04005c,",
                                            "name": "跃进村",
                                            "sort": 30,
                                            "parentId": "53ec86cd47614e4fa5ba43c03e04005c"
                                        }
                                    },
                                    {
                                        "id": "e8a7f9a6aea94598b7ed5e222a56a158",
                                        "parentId": "53ec86cd47614e4fa5ba43c03e04005c",
                                        "label": "十里村",
                                        "code": "100001007002001003002001",
                                        "type": "o",
                                        "sort": 30,
                                        "children": [
                                            {
                                                "id": "a7de4c42978645afb1bcdbdd452050e6",
                                                "parentId": "e8a7f9a6aea94598b7ed5e222a56a158",
                                                "label": "slchz",
                                                "type": "u"
                                            }
                                        ],
                                        "area": {
                                            "id": "48c80478550042fd9681a97f40edc455",
                                            "tenantId": "system",
                                            "parentIds": "0,1,69fde9ffbd2a4558924d77890c747603,abb1dae40abf4f7c902d7fc21513d671,5bd4c9b4e170450aa67c360949f08b91,53ec86cd47614e4fa5ba43c03e04005c,",
                                            "name": "十里村",
                                            "sort": 30,
                                            "parentId": "53ec86cd47614e4fa5ba43c03e04005c"
                                        }
                                    }
                                ],
                                "area": {
                                    "id": "53ec86cd47614e4fa5ba43c03e04005c",
                                    "tenantId": "system",
                                    "parentIds": "0,1,69fde9ffbd2a4558924d77890c747603,abb1dae40abf4f7c902d7fc21513d671,5bd4c9b4e170450aa67c360949f08b91,",
                                    "name": "安源镇",
                                    "sort": 30,
                                    "parentId": "5bd4c9b4e170450aa67c360949f08b91"
                                }
                            },
                            {
                                "id": "46d39309cac54b95ab13bcf51d78b069",
                                "parentId": "5bd4c9b4e170450aa67c360949f08b91",
                                "label": "百源街河长办",
                                "code": "100001007001001006",
                                "type": "o",
                                "sort": 30,
                                "children": [
                                    {
                                        "id": "5e3c79fc389f452a80cebb1663dcddea",
                                        "parentId": "46d39309cac54b95ab13bcf51d78b069",
                                        "label": "沈乐",
                                        "type": "u"
                                    }
                                ],
                                "area": {
                                    "id": "80cf3d0d84ce46d18b216c1f324e98f2",
                                    "tenantId": "system",
                                    "parentIds": "0,1,69fde9ffbd2a4558924d77890c747603,abb1dae40abf4f7c902d7fc21513d671,5bd4c9b4e170450aa67c360949f08b91,",
                                    "name": "白源街街道",
                                    "sort": 30,
                                    "parentId": "5bd4c9b4e170450aa67c360949f08b91"
                                }
                            },
                            {
                                "id": "4c96ca4c6beb4ecb987ab912669d5a94",
                                "parentId": "5bd4c9b4e170450aa67c360949f08b91",
                                "label": "丹江街河长办",
                                "code": "100001007001001005",
                                "type": "o",
                                "sort": 30,
                                "children": [
                                    {
                                        "id": "75a58da7d98f423ba64ba636046ef6ca",
                                        "parentId": "4c96ca4c6beb4ecb987ab912669d5a94",
                                        "label": "吴贺明",
                                        "type": "u"
                                    }
                                ],
                                "area": {
                                    "id": "dfcced13173e41628f814294a58adbd0",
                                    "tenantId": "system",
                                    "parentIds": "0,1,69fde9ffbd2a4558924d77890c747603,abb1dae40abf4f7c902d7fc21513d671,5bd4c9b4e170450aa67c360949f08b91,",
                                    "name": "丹江街街道",
                                    "sort": 30,
                                    "parentId": "5bd4c9b4e170450aa67c360949f08b91"
                                }
                            },
                            {
                                "id": "5c61bd82dd7649ed9d264ebe19d331ed",
                                "parentId": "5bd4c9b4e170450aa67c360949f08b91",
                                "label": "五陂镇河长办",
                                "code": "100001007001001009",
                                "type": "o",
                                "sort": 30,
                                "area": {
                                    "id": "a7564189dd454edfb44ead4b61f6627d",
                                    "tenantId": "system",
                                    "parentIds": "0,1,69fde9ffbd2a4558924d77890c747603,abb1dae40abf4f7c902d7fc21513d671,5bd4c9b4e170450aa67c360949f08b91,",
                                    "name": "五陂镇",
                                    "sort": 30,
                                    "parentId": "5bd4c9b4e170450aa67c360949f08b91"
                                }
                            },
                            {
                                "id": "9b51818f48a84cafba02dc3713732ce6",
                                "parentId": "5bd4c9b4e170450aa67c360949f08b91",
                                "label": "城郊管委会河长办",
                                "code": "100001007001001012",
                                "type": "o",
                                "sort": 30,
                                "area": {
                                    "id": "99303474bb2f476db9e4dd46fd6818a9",
                                    "tenantId": "system",
                                    "parentIds": "0,1,69fde9ffbd2a4558924d77890c747603,abb1dae40abf4f7c902d7fc21513d671,5bd4c9b4e170450aa67c360949f08b91,",
                                    "name": "城郊管委会",
                                    "sort": 30,
                                    "parentId": "5bd4c9b4e170450aa67c360949f08b91"
                                }
                            },
                            {
                                "id": "cc5e264e17424cc98cbd4a2c3d7f5fdd",
                                "parentId": "5bd4c9b4e170450aa67c360949f08b91",
                                "label": "青山镇河长办",
                                "code": "100001007001001011",
                                "type": "o",
                                "sort": 30,
                                "area": {
                                    "id": "ec5c477fda1b45f78fec49b06934dbce",
                                    "tenantId": "system",
                                    "parentIds": "0,1,69fde9ffbd2a4558924d77890c747603,abb1dae40abf4f7c902d7fc21513d671,5bd4c9b4e170450aa67c360949f08b91,",
                                    "name": "青山镇",
                                    "sort": 30,
                                    "parentId": "5bd4c9b4e170450aa67c360949f08b91"
                                }
                            }
                        ],
                        "area": {
                            "id": "5bd4c9b4e170450aa67c360949f08b91",
                            "tenantId": "system",
                            "parentIds": "0,1,69fde9ffbd2a4558924d77890c747603,abb1dae40abf4f7c902d7fc21513d671,",
                            "name": "安源区",
                            "sort": 30,
                            "parentId": "abb1dae40abf4f7c902d7fc21513d671"
                        }
                    }
                ],
                "area": {
                    "id": "abb1dae40abf4f7c902d7fc21513d671",
                    "tenantId": "system",
                    "parentIds": "0,1,69fde9ffbd2a4558924d77890c747603,",
                    "name": "萍乡市",
                    "sort": 30,
                    "parentId": "69fde9ffbd2a4558924d77890c747603"
                }
            }
        ];
    

    js代码

    方法一

        // 方法一
        function aa(id, arr) {
            for (var i in arr) {
                if (arr[i] == id) {
                    return true
                }
            }
        }
    
        function getCity(arr, data, city) {
            if (city == undefined) {
                var city = new Array();
            }
            for (var j in data) {
                if (aa(data[j].id, arr)) {
                    city.push(data[j])
                }
                if (data[j].children !== undefined) {
                    getCity(arr, data[j].children, city)
                }
            }
            return city
        }    
        console.log(getCity(["c128cc24578842debff29b4eba1355bf", "4b21a22d711c4cf6a3e0166011a77e53","5d918f95b513450c83b54748631c3c34"], data))
    

    方法二--简化代码

    // 方法二
        function getCity(arr, data, city = []) {
            if (typeof data === "object") {
                for (let i = 0; arr[i] !== undefined; i++) {
                    for (let j = 0; data[j] !== undefined; j++) {
                        if (arr[i] === data[j].id) {
                            city.push(data[j]);
                        }
                    }
                };
                for (let i = 0; data[i] !== undefined; i++) {
                    getCity(arr, data[i].children, city);
                };
            }
            return city;
        }
        console.log(getCity(["c128cc24578842debff29b4eba1355bf", "4b21a22d711c4cf6a3e0166011a77e53", "5d918f95b513450c83b54748631c3c34"], data))
    
    
  • 相关阅读:
    【PAT甲级】1034 Head of a Gang (30分):图的遍历DFS
    循环的嵌套
    0.1+07 !=0.8的原因
    java script-页面交互
    java script-逻辑分支
    java script-数据类型转换&&运算符
    java script概述
    浏览器内核
    网格布局
    让一个元素在父元素上下左右居中
  • 原文地址:https://www.cnblogs.com/lxk0301/p/10161712.html
Copyright © 2011-2022 走看看