Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- root = {"id":27,"name":"2000 Years","deleted":false,"children":[{"id":28,"name":"1111","parentElementId":27,"deleted":false,"children":[{"id":143,"name":"2010","parentElementId":28,"deleted":false,"children":[{"id":149,"name":"111111","parentElementId":143,"deleted":false,"children":[{"id":150,"name":"22222","parentElementId":149,"deleted":false}]}]},{"id":147,"name":"2011","parentElementId":28,"deleted":false,"children":[{"id":152,"name":"dfdf","parentElementId":147,"deleted":false}]},{"id":148,"name":"2012","parentElementId":28,"deleted":false}]},{"id":146,"name":"22","parentElementId":27,"deleted":false,"children":[{"id":151,"name":"3333","parentElementId":146,"deleted":false}]}]};
- function searchTree(element, node_id){
- let stack = [];
- stack.push({node: element, track: []});
- while (stack.length > 0) {
- let {node, track} = stack.pop();
- if (node.id === node_id) {
- return [...track, node_id];
- } else if (node.children && node.children.length) {
- let new_track = [...track, node.id];
- for (let node_children of node.children) {
- stack.push({node: node_children, track: new_track});
- }
- }
- }
- return null;
- }
- console.log(searchTree(root, 150));
Advertisement
Add Comment
Please, Sign In to add comment