【发布时间】:2020-04-24 01:33:33
【问题描述】:
我需要一些帮助来循环使用对象数组的对象
这是一个示例对象:
const node = {
documents: [{
name: "test1"
}],
children: [{
documents: [{
name: "test2"
}],
children: [{
documents: [{
name: "test3"
}],
children: []
}]
}]
};
我的问题
我从这里尝试了一些解决方案,但这并不是我所需要的。基本上我想将文档数组中的每个对象移动到子数组中。
我已经知道了,但目前它只在第一个对象中这样做,所以不是递归的......
如果不创建弗兰肯斯坦式的代码,我就无法弄清楚...
我试过了
就像我在使用之前提到的那样
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,
};
【问题讨论】:
-
documents可以生孩子吗? -
没有文档总是包含对象的数组
-
数据结构比较混乱。请添加它想要的结果。
-
抱歉,我搞砸了导出 :( 现在它是一个更好的例子
标签: javascript arrays object javascript-objects