开满天机
很多人都在抱怨你没有把代码贴出来,能回答问题的人可都是真心的!简化版实验原始数据(也供其他人可以验证自己的方案)var nodes = [ { "id": 1, "children": [ { "id": 3, "children": [ {"id": 4}, {"id": 9} ] }, { "id": 10 }, ] }, { "id": 2 }, { "id": 6, "children" : [ { "id": 5}, { "id": 7}, { "id": 8} ] }];JS查找输出结果//递归实现//@leafId 为你要查找的id,//@nodes 为原始Json数据//@path 供递归使用,不要赋值function findPathByLeafId(leafId, nodes, path) { if(path === undefined) { path = []; } for(var i = 0; i < nodes.length; i++) { var tmpPath = path.concat(); tmpPath.push(nodes[i].id); if(leafId == nodes[i].id) { return tmpPath; } if(nodes[i].children) { var findResult = findPathByLeafId(leafId, nodes[i].children, tmpPath); if(findResult) { return findResult; } } }}//用法console.log(findPathByLeafId(4, nodes)); //输出 [1,3,4]console.log(findPathByLeafId(9, nodes)); //输出 [1,3,9]console.log(findPathByLeafId(7, nodes)); //输出 [6,7]