мне нужна помощь в цикле по объекту с массивом объектов
Вот пример объекта:
const node = {
documents: [{
name: "test1"
}],
children: [{
documents: [{
name: "test2"
}],
children: [{
documents: [{
name: "test3"
}],
children: []
}]
}]
};
Моя проблема
Я попробовал некоторые решения здесь, но это не совсем то, что мне нужно. В основном я хочу переместить каждый объект из массива документов в детский массив.
Я уже получил это, но в настоящее время он делает это только в первом объекте, поэтому не рекурсивно ...
Я не могу понять это без создания кода Frankenstein-i sh ...
Я попытался , как я упоминал ранее, я использовал
Array.concat()
для добавления документов к детям, но только в первом объекте.
Как это должно выглядеть
const node = {
children: [
{
name: "test1"
},
{
children: [
{
name: "test2"
},
{
children: [
{name: "test3"}
]
}
]
}
]
};
Теперь во всех «глубинах» документы «добавлялись» к детям.
И это должно происходить с каждым детским ключом (глубиной).
Кто-то достаточно любезен, чтобы помочь мне?
РЕДАКТИРОВАТЬ:
Я думаю, мой пример не достаточно хорош. Вот некоторые фактические данные:
const node = {
id: 1,
name: "Root Node",
documents: [
{ name: "Doc Root 1", id: 1234 },
{ name: "Doc Root 2", id: 1235 }
],
children: [
{
id: 2,
name: "Sub Node Node1",
documents: [
{ name: "Doc SubNote 1 1", id: 1236 },
{ name: "Doc SubNote 1 2", id: 1237 }
],
children: [{
id: 3,
name: "Sub Sub Node Node 1",
documents: [
{ name: "Doc SubSubNote 1 1", id: 1238 },
{ name: "Doc SubSubNote 1 2", id: 1239 }
],
children: null,
addTreeNodeDisabled: true,
addLeafNodeDisabled: true,
editNodeDisabled: true,
delNodeDisabled: true,
}],
addTreeNodeDisabled: true,
addLeafNodeDisabled: true,
editNodeDisabled: true,
delNodeDisabled: true,
}
],
addTreeNodeDisabled: true,
addLeafNodeDisabled: true,
editNodeDisabled: true,
delNodeDisabled: true,
};