Как получить последнего родителя объекта?

Как возможно в пример ниже зная только объект с id - 4, достать самого последнего его родителя у которого в примере id - 1

const items = [
    {
      title: 'Production',
      id: 1,
      subTasks: [
        {
          title: 'Production 1',
          id: 2,
          subTasks: [
            { title: 'Production 1 - 1', id: 3, subTasks: [] },
            { title: 'Production 1 - 2', id: 4, subTasks: [] },
          ],
        },
      ],
    },

Буду очень благодарен за помощЬ!


Ответы (1 шт):

Автор решения: SwaD
// Бежит по всему массиву и возвращает первого найденного "Старшего" родителя
function findParent(parentList, searchItem) {
    for (let i = 0; i < parentList.length; i++) {
        if (parentList[i].id === searchItem) {
        return parentList[i].id;
        } else {
        if (parentList[i].subTasks) {
            const x = findParent(parentList[i].subTasks, searchItem, parentList[i].id);
            if (x) return parentList[i].id;
        }
    }
}
return false;
}
console.log(findParent(items, 4));
// Если искать наличие родителя в каждом элементе индекса(для примера) 
const itemsForAll = items.map((item, index) => {
    return findParent([item], index + 4)
});
console.log(itemsForAll);
→ Ссылка