Quantcast
Channel: Active questions tagged javascript - Stack Overflow
Viewing all articles
Browse latest Browse all 138163

Recursive function to find top level parent given an id

$
0
0

Given the following data set:

const accounts = [
  {id: 2, children: [1,22,69], parentId: null},
  {id: 3, children: [140, 122, 580], parentId: null},
  {id: 1, children: [4,5,6], parentId: 2},
  {id: 22, children: [8,9,2], parentId: 2},
  {id: 4, children: [45,54,61], parentId: 1},
  {id: 6, children: [40,89,20], parentId: 1},
  {id: 40, children: [], parentId: 6},
  ....
]

I need to create a function that takes an id as argument and returns a tree, starting with the topmost level parent and its children (and siblings).

In the above example, there are only 2 top level "accounts", id:2 and id:3. So the function call might look like findTree(89) , it should return the tree starting with the account id 2, and its children, but will obviously leave out account id 3 and its children, since that top level account has nothing to do with top level account of id 2, so the ideal response would be:

{
 id: 2,
 children: [
   { id: 1, children: [{id: 540, children: [{ id: 78},{}], parentId:1], parentId: 2},
   .....
 ],
 parentId: null
}

What would be the best way to go about it? I've tried a recursive function but I'm not getting anywhere near to a solution.


Viewing all articles
Browse latest Browse all 138163

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>