Как получить последнего родителя объекта?
Как возможно в пример ниже зная только объект с 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);