title: How to get the value of each parent from a nested array of object
body: <p>So I have a multiple array of object and each object my contain a child.</p>
  <p>e.g</p>
  <pre><code>const data = [
      {
          id: 1,
          name: 'parent 1',
          children: [
              {
                  id: 'c1',
                  name: 'child 1',
                  children: [
                      {
                          id: 'g1',
                          name: 'grand 1',
                          children: [],
                      },
                  ],
              },
          ],
      },
      {
          id: 2,
          name: 'parent 2',
          children: [
              {
                  id: 2,
                  name: 'c1',
                  children: [],
              },
          ],
      },
      { id: 3, name: 'parent 3', children: [] },
  ];
  </code></pre>
  <p>what I wanted to happen is that if the Id that I'm searching for is
  'g1', I would get the result</p>
  <pre><code>const result = ['parent 1', 'c1', 'grand 1']
  </code></pre>
  <p>the loop would only stop and get all the names that it went thru until the condition, in this case the id, is met</p>
  <p>current approach done</p>
  <pre><code>/**
   * Details
   * @param id the value you are searching for
   * @param items nested array of object that has child
   * @param key name of the value you are looking for
   * @returns string of array that matches the id
   * @example ['parent 1', 'c1', 'grand 1']
   */
  export function findAll(id: string, items: any, key: string): string[] {
    let i = 0;
    let found;
    let result = [];
  
    for (; i &lt; items.length; i++) {
      if (items[i].id === id) {
        result.push(items[i][key]);
      } else if (_.isArray(items[i].children)) {
        found = findAll(id, items[i].children, key);
        if (found.length) {
          result = result.concat(found);
        }
      }
    }
    return result;
  }
  
  </code></pre>