【发布时间】:2016-10-18 15:55:15
【问题描述】:
有没有一种捷径可以将由对象组成的数组重新分配到一个新数组中。我想使用 Lodash 库,但不知道如何在内部拆分和连接。我需要这个来使用 jstree 库构建一棵树
我有这样的事情:
[
{
'text':'parent 1',
'children': [
{
'text':'children 3'
}
]
},
{
'text':'parent 2',
'children': []
},
{
'text':'parent 3',
'children': []
},
{
'text':'parent 1',
'children': [
{
'text':'children 1',
'children': []
},
{
'text':'children 2',
'children': []
}
]
}
]
而我想在变身后拥有下一个
[
{
'text':'parent 2',
'children': []
},
{
'text':'parent 3',
'children': []
},
{
'text':'parent 1',
'children': [
{
'text':'children 1',
'children': []
},
{
'text':'children 2',
'children': []
},
{
'text':'children 3'
}
]
}
]
如果“文本”相同,我想合并所有对象并连接它们的子对象。
嵌套层级可以尽可能多,没有限制。
[
{
'text':'parent 1',
'children': [
{
'text':'children 2',
'children': [
{
'text':'parent 3',
'children': [
{
'text':'parent 4',
'children': [
...
]
},
]
},
]
}
]
}
]
有可能吗?
【问题讨论】:
-
最好的方法是创建函数,将一个元素一个一个地添加到树中,并返回每个步骤的结果树。但是在插入之前,您需要检查您在当前步骤中拥有的完整树,(开始为空),与树中存在的所有元素,父母和孩子进行比较。(可能是电阻率?)您可以从叶子开始(最后孩子)或父母,这两种方法都有自己的技巧。
-
能否请您发布您需要的输出?
-
@Nidhin 是的,我已经添加了
标签: javascript arrays object lodash