zoukankan      html  css  js  c++  java
  • javascript : 找到一个树型数据的一个节点及其所有父节点

    如题。

    (function () {
        let tree = {
            "id": 0,
            "label": "all",
            "children": [
                {
                    "children": [
                        {
                            "children": [
                                {
                                    "id": 210,
                                    "label": "dashboard_panel"
                                },
                                {
                                    "children": [
                                        {
                                            "id": 212,
                                            "label": "dashboard_card-edit"
                                        },
                                        {
                                            "id": 213,
                                            "label": "dashboard_card-view"
                                        }
                                    ],
                                    "id": 211,
                                    "label": "dashboard_card"
                                }
                            ],
                            "id": 209,
                            "label": "dashboards"
                        }
                    ],
                    "id": 208,
                    "label": "dashboard_manage"
                },
                {
                    "id": 300,
                    "label": "user_manage",
                    "children": [
                        {
                            "id": 312,
                            "label": "user_card-edit"
                        },
                        {
                            "id": 313,
                            "label": "user_card-view"
                        }
                    ]
                }
            ]
        };
    
    
        let ids = [213, 312, 211]
        for (let id of ids) {
            let arr = findIndexArray(tree.children, id, []);
            console.log(arr);
        }
    
    })()
    
    
    function findIndexArray(data, id, indexArray) {
        let arr = Array.from(indexArray)
        for (let i = 0, len = data.length; i < len; i++) {
            arr.push({ id: data[i].id, label: data[i].label })
            if (data[i].id === id) {
                return arr
            }
            let children = data[i].children
            if (children && children.length) {
                let result = findIndexArray(children, id, arr)
                if (result) return result
            }
            arr.pop()
        }
        return false
    }
  • 相关阅读:
    SG函数(斐波那契博弈) Fibonacci again and again
    poj
    威佐夫博弈
    Java——类的定义
    链队列——出入队列
    Java——写一个求和 “方法”
    巴什博弈 HDU-1846
    链栈——入栈和出栈
    java——基本数据类型
    JAVA——桌球游戏(动画)
  • 原文地址:https://www.cnblogs.com/foxcharon/p/12797134.html
Copyright © 2011-2022 走看看