javaScript 根据子节点ID获取结构树中改子节点的所有父节点ID
问题
js中根据子节点ID获取结构树中该子节点所有的父节点ID
方法代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | // 传入结构树以及查询父节点的子节点ID function getTreeIds(tree, nodeId) { const { children = 'children' , id = 'id' } = {}; const toFlatArray = (tree, parentId) => { return tree.reduce((t, _) => { const child = _[children] return [ ...t, parentId ? { ..._, parentId } : _, ...(child && child.length ? toFlatArray(child, _[id]) : [])] }, []) } const getIds = flatArray => { let ids = [nodeId] let child = flatArray.find(_ => _[id] === nodeId) while (child && child.parentId) { ids = [child.parentId, ...ids] child = flatArray.find(_ => _[id] === child.parentId) } return ids } return getIds(toFlatArray(tree)) } |
原帖地址
https://zhuanlan.zhihu.com/p/484886345
作者:假装空白
欢迎任何形式的转载,但请务必注明出处。
限于本人水平,如果文章和代码有表述不当之处,还请不吝赐教。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 周边上新:园子的第一款马克杯温暖上架
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?
· 使用C#创建一个MCP客户端