Показать сообщение отдельно
  #1 (permalink)  
Старый 04.02.2021, 17:33
Аспирант
Отправить личное сообщение для jabbascript Посмотреть профиль Найти все сообщения от jabbascript
 
Регистрация: 27.11.2017
Сообщений: 45

Обмен узлов между двумя деревьями
Здравствуйте!!!
Хочу разобраться как можно осуществить смену узлов 2х деревьев с n вложенностью(узел получаем по клику, по факту это будет драг энд дроп). Корневой узел перетаскивает всех дочерних, любой дочерний может стать корневым и дочерним для любого другого узла в своем дереве или соседнем. Учитывается позиция.

1. Какие нужно учесть условия чтобы это стало возможо?
2. Задачка конечно ппц, хочется както понять с чего начать)

Допустим есть входящие данные такие:
const tree1 = [
	{
		id: 1, 
		title: 'node1', 
		children: [
			{
				id: 3, 
				title: 'sub node1' ,
			}, 
			{ 
				id: 4, 
				title: 'sub node1' , 
				children: [ { id: 5, title: 'sub sub node1'}]
			}
		] ,
	},
	{
		id: 2, 
		title: 'node2', 
		children: [
			{
				id: 6, 
				title: 'sub node2' ,
			}, 
			{ 
				id: 7, title: 'sub node2' , 
				children: [ { id: 8, title: 'sub sub node2'}]
			}
		] ,
	}
];

const tree2 = [
	{
		id: 9, 
		title: 'node1', 
		children: [
			{
				id: 10, 
				title: 'sub node1' ,
			}, 
			{ 
				id: 11, title: 'sub node1' , 
				children: []
			}
		] ,
	},
	{
		id: 12, 
		title: 'node2', 
		children: [
			{
				id: 13, 
				title: 'sub node2' ,
			}, 
			{ 
				id: 14, 
				title: 'sub node2' , 
				children: [ { id: 15, title: 'sub sub node2'}]
			}
		] ,
	}
];

const treeToTreeNodes = (tree1, tree2) => {

}

Последний раз редактировалось jabbascript, 04.02.2021 в 17:39.
Ответить с цитированием