title: Build tree array from flat array in javascript
body: <p>I have a complex json file that I have to handle with javascript to make it hierarchical, in order to later build a tree.
  Every entry of the json has :
  id : a unique id, 
  parentId : the id of the parent node (which is 0 if the node is a root of the tree)
  level : the level of depth in the tree</p>
  
  <p>The json data is already "ordered". I mean that an entry will have above itself a parent node or brother node, and under itself a child node or a brother node.</p>
  
  <p>Input :</p>
  
  <pre><code>{
      "People": [
          {
              "id": "12",
              "parentId": "0",
              "text": "Man",
              "level": "1",
              "children": null
          },
          {
              "id": "6",
              "parentId": "12",
              "text": "Boy",
              "level": "2",
              "children": null
          },
                  {
              "id": "7",
              "parentId": "12",
              "text": "Other",
              "level": "2",
              "children": null
          },
          {
              "id": "9",
              "parentId": "0",
              "text": "Woman",
              "level": "1",
              "children": null
          },
          {
              "id": "11",
              "parentId": "9",
              "text": "Girl",
              "level": "2",
              "children": null
          }
      ],
      "Animals": [
          {
              "id": "5",
              "parentId": "0",
              "text": "Dog",
              "level": "1",
              "children": null
          },
          {
              "id": "8",
              "parentId": "5",
              "text": "Puppy",
              "level": "2",
              "children": null
          },
          {
              "id": "10",
              "parentId": "13",
              "text": "Cat",
              "level": "1",
              "children": null
          },
          {
              "id": "14",
              "parentId": "13",
              "text": "Kitten",
              "level": "2",
              "children": null
          },
      ]
  }
  </code></pre>
  
  <p>Expected output : </p>
  
  <pre><code>{
      "People": [
          {
              "id": "12",
              "parentId": "0",
              "text": "Man",
              "level": "1",
              "children": [
                  {
                      "id": "6",
                      "parentId": "12",
                      "text": "Boy",
                      "level": "2",
                      "children": null
                  },
                  {
                      "id": "7",
                      "parentId": "12",
                      "text": "Other",
                      "level": "2",
                      "children": null
                  }   
              ]
          },
          {
              "id": "9",
              "parentId": "0",
              "text": "Woman",
              "level": "1",
              "children":
              {
  
                  "id": "11",
                  "parentId": "9",
                  "text": "Girl",
                  "level": "2",
                  "children": null
              }
          }
  
      ],    
  
      "Animals": [
          {
              "id": "5",
              "parentId": "0",
              "text": "Dog",
              "level": "1",
              "children": 
                  {
                      "id": "8",
                      "parentId": "5",
                      "text": "Puppy",
                      "level": "2",
                      "children": null
                  }
          },
          {
              "id": "10",
              "parentId": "13",
              "text": "Cat",
              "level": "1",
              "children": 
              {
                  "id": "14",
                  "parentId": "13",
                  "text": "Kitten",
                  "level": "2",
                  "children": null
              }
          }
  
      ]
  }
  </code></pre>