递归获取嵌套对象中给定节点的完整路径(父级层次结构)

库迈尔·贾瓦迪(Kumail Jawadi)

我需要一个Typescript函数通过传递其值来递归获取给定节点的完整路径(父级层次结构)。

假设我有一个这样的对象数组:

items = [{
        value: 2,
        text: "Name 2",
        children: [{
            value: 7,
            text: "Name 7",
            children: [{
                    value: 10,
                    text: "Name 10",
                    children: []
                },
                {
                    value: 11,
                    text: "Name 11",
                    children: []
                },
                {
                    value: 12,
                    text: "Name 12",
                    children: [{
                        value: 13,
                        text: "Name 13",
                        children: [{
                                value: 14,
                                text: "Name 14",
                                children: []
                            },
                            {
                                value: 15,
                                text: "Name 15",
                                children: []
                            }
                        ]
                    }]
                }
            ]
        }]
    },
    {
        value: 16,
        text: "Name 16",
        children: [{
            value: 17,
            text: "Name 17",
            children: [{
                    value: 18,
                    text: "Name 18",
                    children: []
                },
                {
                    value: 19,
                    text: "Name 19",
                    children: []
                }
            ]
        }]
    }
];

假设我想通过调用函数来获取value = 19的节点的完整路径。

getPath(items, 19);

预期结果可能是仅返回父节点的值

[16, 17, 19]

或如下所示的对象数组:

[{值:16,文本:“名称16”},{值:17,文本:“名称17”},{值:19,文本:“名称19”}]

谢谢,

阮凤添

希望有帮助

const items = [{
    value: 2,
    text: "Name 2",
    children: [{
        value: 7,
        text: "Name 7",
        children: [{
            value: 10,
            text: "Name 10",
            children: []
        },
        {
            value: 11,
            text: "Name 11",
            children: []
        },
        {
            value: 12,
            text: "Name 12",
            children: [{
                value: 13,
                text: "Name 13",
                children: [{
                    value: 14,
                    text: "Name 14",
                    children: []
                },
                {
                    value: 15,
                    text: "Name 15",
                    children: []
                }
                ]
            }]
        }
        ]
    }]
},
{
    value: 16,
    text: "Name 16",
    children: [{
        value: 17,
        text: "Name 17",
        children: [{
            value: 18,
            text: "Name 18",
            children: []
        },
        {
            value: 19,
            text: "Name 19",
            children: []
        }
        ]
    }]
}
];

function getPath(items, val) {
    for (let i = 0; i < items.length; i++) {
        const item = items[i];
        if (item.value !== val) {
            if (item.children) {
                const path = getPath(item.children, val);
                if (path) {
                    path.unshift(item.value);
                    return path;
                }
            }
        } else {
            return [item.value];
        }
    }
}

console.log(getPath(items, 19));

这是链接

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

SQL层次结构-解析给定节点的所有祖先的完整路径

从bash中的相对路径获取文件的父级的父级的完整路径

获取C#中嵌套对象字段的完整路径

在保留子级的嵌套对象层次结构(树)中删除父级

如何在 UNIX 中递归获取完整路径?

获取节点Webkit中目录的完整路径

如何在arangodb中显示完全嵌套层次结构的给定节点的所有所有子/父节点

给定层次结构中的任何子级,请通过INFORMIX层次结构SQL提取完整的树

获取嵌套父母的完整路径

SQL Server函数获取层次结构中的顶级父级

在层次结构表中获取最终的父级

获取深度嵌套对象结构中的父级、祖级和键

如何在jstree中获取选定节点的完整路径?(从根节点到选定节点)

在给定条件的情况下,如何从递归层次结构返回节点的路径?

获取Java中的文件完整路径

在PowerShell中获取文件的完整路径

从 Bash 脚本中获取完整路径

在Postgresql中获取给定孩子的整个父级结构

搜索对象的嵌套数组,并返回对象的完整路径

Oracle中的递归查询,直到层次结构中的父级满足条件为止?

获取给定目录的完整路径名

给定任何节点作为输入的 Oracle SQL 完整层次结构

使用partykit中的ctree获取每个终端节点从叶到根的完整路径

递归多个层次结构并汇总所有父级

在包含对象中列出所有嵌套属性及其完整路径

SQL:从子级获取父级树层次结构

打印/获取字典中的每个嵌套项目的完整路径 - Python3

使用Boto3嵌套键获取S3中文件的完整路径

使用递归获取嵌套对象中的所有父对象