Riveran
@Riveran
Astartes

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

Добрый день, мне попалась интересная задача над которой я сижу уже некоторое время.
В общем, есть код который выводит на экран древообразный список из объектов с вложеностьями, вот его код
itemRenderer(item) {
		const childrenItems = item.children ? this.getGroupSelectionBody(item.children) : null;

		return (
			<GroupSelectionItemComponent
				itemsIsExpanded={false}
				item={item}
				onMenuItemSelected={this.props.onMenuItemSelected}
				key={item.id}
			>
				{childrenItems}
			</GroupSelectionItemComponent>
		);
	}

	getGroupSelectionBody(items) {
		return items.map(this.itemRenderer.bind(this));
	}


Пример объектов
5d493f79afcd5906976777.png
5d493f93854d1092109667.png
Как видно на скриншоте id и parentid идут "зигзагом".
Суть вопроса, как я могу получить список всех родителей вплоть до самого верхнего имея лишь id и parentid глубоко вложенного ребёнка?
  • Вопрос задан
  • 72 просмотра
Пригласить эксперта
Ответы на вопрос 2
dimovich85
@dimovich85 Куратор тега JavaScript
https://u-academy.net/
Создаете рекурсивную функцию, которая проверяет, есть ли у объекта, который пришел на вход, как параметр при вызове, свойство parentid, если есть - рекурсивный вызов, если нет - просто возврат или пуш в массив, смотря, что нужно.
Ответ написан
Комментировать
function getAllParents (id) {
   const parents = []
   let el = document.getElementById(id)
	while(el){
		el = el.parentElement
		if (el) parents.push(el)
	}
	return parents
} 

console.log(getAllParents('yourID'))
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы